sunchaoee 发表于 2022-2-19 20:20:24

课后作业8中的代码请教

import random

counts = int(input("请输入抛硬币的次数:"))
i = 0

print("开始抛硬币实验:")
while i < counts:
    num = random.randint(1, 10)

    if num % 2:
      print("正面", end=" ")
    else:
      print("反面", end=" ")

    i += 1
在这个代码中num = random.randint(1, 10)为什么要从1到10中去随机一个数呢?

isdkz 发表于 2022-2-19 20:26:11

不一定要1到10,保证正面和反面的概率均等就行,

比如1到11就不行,这样除以2余数为1的会比余数为0的多了一个

sunchaoee 发表于 2022-2-19 20:28:32

isdkz 发表于 2022-2-19 20:26
不一定要1到10,保证正面和反面的概率均等就行,

比如1到11就不行,这样除以2余数为1的会比余数为0的多 ...

谢谢

ckblt 发表于 2022-2-19 20:36:00

这样均衡,如果弄1-2的话会比较不均衡
(个人猜想,如有错误请指正)

sunchaoee 发表于 2022-2-19 20:43:55

ckblt 发表于 2022-2-19 20:36
这样均衡,如果弄1-2的话会比较不均衡
(个人猜想,如有错误请指正)

谢谢

isdkz 发表于 2022-2-19 21:02:23

ckblt 发表于 2022-2-19 20:36
这样均衡,如果弄1-2的话会比较不均衡
(个人猜想,如有错误请指正)

我觉得,假设randint得到的结果是均衡的,

使用1,2,模2为0和1的各占50%,

即使把这50%拆开了也没什么不同,最终关注的也是这50%而已,

用再多的数值来去随机也是各占50%而已,并没有改变几何概率模型

而要使抛硬币的结果更趋近于50%的分布,应该调整的是抛硬币的次数
页: [1]
查看完整版本: 课后作业8中的代码请教