[英]Simulate rolling 2 dice 24 times and calculating the probability of getting a 6 in Python
[英]Python : Calculating probability of a dice throw function
您好,这是我的任务。 ..................................................... ..................................................... ...... 你在楼梯的底部有一个骰子。 每次掷骰子,您要么向下移动一步(如果您的骰子点数为 1 或 2),要么向上移动一步(如果您的骰子点数为 3、4 或 5)。 如果您在骰子上掷出 6,您将再次掷骰子并按照第二次掷出的数字向上移动。 请注意,如果您在楼梯底部,则无法向下移动。 function 有一个参数,该参数对掷骰子的所有结果采用概率分布。 例如 (0,2.0,3.0,2.0,1.0,1.0.1) 表示得到 1 的概率是 0,2。 2 is 0.3 etc: 计算达到高于第 200 步的概率,对于以下情况,100 次抛出。 [0,2.0,2.0,2.0,2.0,1.0.1] 分布。 '''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''' '''''' 我已经能够创建一些用作 function 的代码(我确定它可以被简化,但我是新手)但是我不确定如何计算它被高于第 200 步。
import random
def rolldice(T:int, D): #T = throws, D = distribution in format [0.0,0.0,0.0,0.0,0.0,1] [0.2,0.2,0.2,0.2,0.1,0.1]
Stair = 0
for i in range(T):
print(i,Stair)
roll = random.choices([1,2,3,4,5,6], weights= D)
roll2 = random.choices([1,2,3,4,5,6])
roll1 = roll[0]
if roll[0] == 1 and Stair > 0:
Stair -= 1
elif roll[0] == 2 and Stair > 0:
Stair -= 1
elif roll[0] == 3:
Stair += 1
elif roll[0] == 4:
Stair += 1
elif roll[0] == 5:
Stair += 1
elif roll[0] == 6:
Stair += roll2[0]
return Stair
rolldice(100, [0.2,0.2,0.2,0.2,0.1,0.1])
您可以通过输入 function 将 T 分配给 1000,然后它会循环一定数量的抛出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.