作者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/cn.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