作者empireisme (empireisme)
看板R_Language
標題[問題]用R模擬猜拳賭博
時間Tue Apr 18 22:43:12 2017
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://webptt.com/m.aspx?n=bbs/R_Language/M.1492526596.A.023.html
1F:推 f496328mm: 這應該可以直接用數學推導吧? 04/18 23:09
2F:→ f496328mm: 程式跑到機率會不準 04/18 23:10
3F:→ celestialgod: 其實次數很大的時候就會很接近真實值 04/18 23:25
4F:→ celestialgod: /重複 這好像叫做Monte-Carlo Method 04/18 23:25
5F:→ celestialgod: 像是模擬pi也是生成兩個0~1的隨機變數 04/18 23:26
6F:→ celestialgod: 看它們落在直徑為1的圓裡面之比例 04/18 23:27
7F:→ celestialgod: 比例會很接近pi/4 04/18 23:27
8F:→ celestialgod: 當重複生成的隨機變數極多的時候 04/18 23:27
9F:→ celestialgod: matrix(runif(2e6), ncol = 2) %>>% `^`(2) %>>% 04/18 23:29
10F:→ celestialgod: rowSums %>>% `<=`(1) %>>% mean 04/18 23:29
11F:→ celestialgod: 大概是 0.785525,而pi/4是0.7853982 04/18 23:29
12F:→ celestialgod: 生成4e7個話是0.7853596 04/18 23:30
13F:→ celestialgod: 至於原PO這應該是作業,請善用while + ifelse去做 04/18 23:30
14F:→ celestialgod: while條件是贏了不玩 04/18 23:31
15F:→ celestialgod: 跳出條件是財產<0,然後重複幾百萬次,count破產數 04/18 23:32
16F:→ empireisme: 謝c大,不是作業啦 04/19 11:04
18F:→ laxatony: 閣下在實驗馬丁格爾的另一種形式嗎 XD 04/20 00:12