[問題] 用R模擬猜拳賭博

看板R_Language作者 (empireisme)時間7年前 (2017/04/18 22:43), 編輯推噓1(1017)
留言18則, 5人參與, 最新討論串1/1
R的初學者 想用R來模擬一個賭博方式 規則如下 本金1000000元 跟對方玩剪刀時頭布 如果贏對方的話 可以得到100元 如果輸或跟對方平手的話給對方100元後 下次變成賭300元 之後再跟對方玩一次剪刀石頭布 如果贏就不玩了 如果輸或平手 就再賭900元 總之就是如果輸了 就賭上次賭額的3倍 想要R模擬破產的機率是多少 wealth=1000000 a=sample(1:3,1) if(a==1) { c=wealth+100 print(c) } if(a!=1) { print(wealth-100) } 這是我想的程式碼 目前以為要用for 或是while來用 但是沒有頭緒 懇請版友幫忙 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.45.69.166 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1492526596.A.023.html

04/18 23:09, , 1F
這應該可以直接用數學推導吧?
04/18 23:09, 1F

04/18 23:10, , 2F
程式跑到機率會不準
04/18 23:10, 2F

04/18 23:25, , 3F
其實次數很大的時候就會很接近真實值
04/18 23:25, 3F

04/18 23:25, , 4F
/重複 這好像叫做Monte-Carlo Method
04/18 23:25, 4F

04/18 23:26, , 5F
像是模擬pi也是生成兩個0~1的隨機變數
04/18 23:26, 5F

04/18 23:27, , 6F
看它們落在直徑為1的圓裡面之比例
04/18 23:27, 6F

04/18 23:27, , 7F
比例會很接近pi/4
04/18 23:27, 7F

04/18 23:27, , 8F
當重複生成的隨機變數極多的時候
04/18 23:27, 8F

04/18 23:29, , 9F
matrix(runif(2e6), ncol = 2) %>>% `^`(2) %>>%
04/18 23:29, 9F

04/18 23:29, , 10F
rowSums %>>% `<=`(1) %>>% mean
04/18 23:29, 10F

04/18 23:29, , 11F
大概是 0.785525,而pi/4是0.7853982
04/18 23:29, 11F

04/18 23:30, , 12F
生成4e7個話是0.7853596
04/18 23:30, 12F

04/18 23:30, , 13F
至於原PO這應該是作業,請善用while + ifelse去做
04/18 23:30, 13F

04/18 23:31, , 14F
while條件是贏了不玩
04/18 23:31, 14F

04/18 23:32, , 15F
跳出條件是財產<0,然後重複幾百萬次,count破產數
04/18 23:32, 15F

04/19 11:04, , 16F
謝c大,不是作業啦
04/19 11:04, 16F

04/19 16:44, , 17F
04/19 16:44, 17F

04/20 00:12, , 18F
閣下在實驗馬丁格爾的另一種形式嗎 XD
04/20 00:12, 18F
文章代碼(AID): #1OzYO40Z (R_Language)