1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python编写程序模拟硬币投掷 模拟掷硬币实验RealPython

python编写程序模拟硬币投掷 模拟掷硬币实验RealPython

时间:2022-10-24 03:58:48

相关推荐

python编写程序模拟硬币投掷 模拟掷硬币实验RealPython

有人能帮我解释一下下面Realpython分配任务的解决方案吗?我发现的解决方案似乎令人困惑。在

编写一个python脚本,它使用掷硬币模拟来确定这个稍微复杂一些的概率谜题的答案:我不断地翻转一个公平的硬币,直到我看到它至少每个正面和反面都落下一次——换句话说,在我第一次掷硬币之后,我继续掷硬币,直到得到不同的结果。平均来说,我总共要掷多少次硬币?同样,可以计算出实际的概率,但这里的重点是使用randint来模拟事件。为了得到预期的平均投掷次数,你应该设置一个变量试验值为10000,一个变量翻转值为0,然后在每次掷硬币时将1加到你的掷骰变量中。然后你可以在代码末尾打印翻转/试验,看看平均翻转次数是多少。在from random import randint

flips = 0

trials = 10000

for i in range(trials):

first_flip = randint(0, 1)

while randint(0, 1) == first_flip:

flips += 1 # Every flip after the first flip.

print("flips done is {}".format(flips))

print(flips / trials + 2.0) # Initial trial and final trial added.

在上面的情况下,如果第一个“翻转”为0,而while循环条件在第一次随机尝试时生成1,则for循环将迭代而不添加翻转。此外,如果while循环在随机尝试等于first_flip时运行,则在while循环轨迹ie中,for循环中的“i”值不会被添加。简言之,最后的翻身次数或多或少要比试验次数少。在

有人能帮我解释一下这背后的逻辑还是更好的python脚本?在

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。