python骰子游戏分析_两个骰子的Python概率骰子游戏

我想在下面的函数上重复1000次,看看你在这个游戏中是赢了还是亏了钱。在

这个游戏是这样设计的,你扔一对骰子,然后拿回钱或是零花钱。假设我们从5个硬币开始。在

掷一个12得到1.5硬币。在

投掷一枚11金币。在

投掷10得到0.5硬币。在

抛出一个9、8或7不会产生任何结果。在

投掷一个6,5,4,3,2或1会从您的硬币数量中扣除0.5硬币。在

到目前为止,我的实现是这样的:def luckCalc():

amount = 5

# if 12 then 1/36 chance

if random.randrange(1,7) == 6 and random.randrange(1,7) == 6:

amount = amount + 1.5

# if 11 then 2/36 chance

elif (random.randrange(1,7) == 5 and random.randrange(1,7) == 6) or (random.randrange(1,7) == 6 and random.randrange(1,7) == 5):

amount = amount + 1

# if 10 then 3/36 chance

elif (random.randrange(1,7) == 5 and random.randrange(1,7) == 5) or (random.randrange(1,7) == 4 and random.randrange(1,7) == 6) or (random.randrange(1,7) == 6 and random.randrange(1,7) == 4):

amount = amount + 0.5

# if 9,8,7

# 4/36 + 5/36 + 6/36 chance

# 1+6, 2+5, 3+4, 4+3, 5+2, 6+1 chance

# 2+6, 3+5, 4+4, 5+3, 6+2 chance

# 3+6, 4+5, 5+4, 6+3 chance

# then no change in amount

# if 6,5,4,3,2,1

# chances...

# then amount -0.5

return amount

# Iterate over the dice throwing simulator and calculate total

total = 0.0

for a in range(1000):

total = total + luckCalc()

print (total)

在函数的末尾我停止了编码,因为我意识到必须有一个更优雅的解决方案来实现这一点。有什么有趣的建议,我一直听说的蒙特卡洛是什么?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值