关于课后作业第8讲抛硬币代码的疑问
课后作业第八题题目简单来说,就是要抛200次硬币,随机输出正面或者是反面,答题之后看了答案有点不太理解的地方,求解答import random
counts = int(input("请输入抛硬币的次数:"))
i = 0
print("开始抛硬币实验:")
while i < counts:
num = random.randint(1, 10) ----这里设置(1,10)是有什么原因的么?还是随便都行?因为我尝试了设置200和2,都能正常跑,所以想问问是有什么特殊原因么?
if num % 2:
print("正面", end=" ")
else:
print("反面", end=" ")
i += 1 随意了,反正100个数里面只有奇偶两种数据
10000个数据里面也只有奇偶两种数据而已
其实想设置什么都行,只是需要用程序模拟抛硬币
理想情况下抛硬币的结果最终正反都会接近0.5,所以用程序模拟出随机数也都接近 0.5 即可
源代码中是从 1~10,也就是奇数和偶数恰好都五五开
那么自然在随机的情况下,最终执行 if和 执行 else 的概率也是接近 0.5 的,也就达到了程序模仿抛硬币的效果
所以,综上所述,实际上 randint(1,2) 就可以满足条件了,但是要注意,你给予的数,奇偶要分半,才能模拟出概率分半的效果,否则概率会有偏差
Twilight6 发表于 2022-9-24 21:42
其实想设置什么都行,只是需要用程序模拟抛硬币
理想情况下抛硬币的结果最终正反都会接近0.5,所以用 ...
明白了,谢谢大佬解答~!!
页:
[1]