楼主: 啦啦啦、、
4967 4

[程序分享] 用R语言模拟扔3个骰子,扔出后3个骰子的相乘的值小于90的概率,至少模拟10万次求概率 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

80%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
30 点
帖子
1
精华
0
在线时间
4 小时
注册时间
2018-9-17
最后登录
2018-10-15

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
R语言小白,
dice<-function(){
    result<-1
    for(i in 1:3){
      result<-result*sample(1:6,1)
    if(result<90) return(TRUE)
  }
}
mean(replicate(10000, dice()))
大佬麻烦看一下这个为什么输出出来一直是1呢

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
我罩着太阳 学生认证  发表于 2018-9-17 23:42:18 |只看作者 |坛友微信交流群
dice<-function(){
  result<-1
  for(i in 1:3){
    result<-result*sample(1:6,1)
   
  }
  if(result<90) return(1)
  else return(0)
}
n=10000
mean(replicate(10000, dice()))


最重要的是你的if语句要在三个相乘的result计算出来之后才能判断是否大于90
然后我加了n这个变量,这样更改次数方便一些
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

藤椅
silver365 在职认证  发表于 2018-9-18 13:57:58 |只看作者 |坛友微信交流群
  1. dice <- function(){
  2.   result <- sample(1:6, 3, replace = TRUE)
  3.   a <- result[1] * result[2] * result[3]
  4.   ifelse( a < 90, 1, 0)
  5.   }
复制代码

不用for 循环语句写的,运行效率好像比for的快一些。
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

板凳
ryoeng 在职认证  发表于 2018-9-24 02:35:34 |只看作者 |坛友微信交流群
上个月阅读了解密复兴科技 - 基于隐蔽马尔科夫模型的时序分析方法后,上周无意中发现篇文章一文搞懂HMM(隐马尔可夫模型),就兴致勃勃测试下该篇文章中的丢骰子(骰子1有4面,骰子2有6面,骰子3有8面)例子,结果... 电脑负荷不了192*192矩阵 x 10000次迭代,倘若三颗6面骰子有216的可能性,就不止3.6亿个转换率了~它日打算写书R语言玩转金融与体彩数据分析,包括彩票和赌场轮盘等游戏。
原文:求助:Error in solve.default(A) : system is computationally singular: reciprocal
代码:hmm.R

状态分析(马尔可夫链)也可以应用在彩票成绩预测。
Scιβrοκεrs Trαdιηg
世博量化
http://gitee.com/englianhu

使用道具

报纸
ntsean 发表于 2018-9-24 13:48:33 |只看作者 |坛友微信交流群
  1. mean(sapply(1:100000, function(i) prod(sample(1:6, 3, replace = TRUE)) < 90))
复制代码

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 14:59