鱼C论坛

 找回密码
 立即注册
查看: 3047|回复: 3

[已解决]关于课后作业第8讲抛硬币代码的疑问

[复制链接]
发表于 2022-9-24 21:39:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
课后作业第八题题目简单来说,就是要抛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
最佳答案
2022-9-24 21:42:56

其实想设置什么都行,只是需要用程序模拟抛硬币

理想情况下抛硬币的结果最终正反都会接近0.5,所以用程序模拟出随机数也都接近 0.5 即可

源代码中是从 1~10,也就是奇数和偶数恰好都五五开

那么自然在随机的情况下,最终执行 if  和 执行 else 的概率也是接近 0.5 的,也就达到了程序模仿抛硬币的效果

所以,综上所述,实际上 randint(1,2) 就可以满足条件了,但是要注意,你给予的数,奇偶要分半,才能模拟出概率分半的效果,否则概率会有偏差

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-24 21:42:07 From FishC Mobile | 显示全部楼层
随意了,反正100个数里面只有奇偶两种数据
10000个数据里面也只有奇偶两种数据而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-24 21:42:56 | 显示全部楼层    本楼为最佳答案   

其实想设置什么都行,只是需要用程序模拟抛硬币

理想情况下抛硬币的结果最终正反都会接近0.5,所以用程序模拟出随机数也都接近 0.5 即可

源代码中是从 1~10,也就是奇数和偶数恰好都五五开

那么自然在随机的情况下,最终执行 if  和 执行 else 的概率也是接近 0.5 的,也就达到了程序模仿抛硬币的效果

所以,综上所述,实际上 randint(1,2) 就可以满足条件了,但是要注意,你给予的数,奇偶要分半,才能模拟出概率分半的效果,否则概率会有偏差

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-24 21:46:22 | 显示全部楼层
Twilight6 发表于 2022-9-24 21:42
其实想设置什么都行,只是需要用程序模拟抛硬币

理想情况下抛硬币的结果最终正反都会接近0.5,所以用 ...

明白了,谢谢大佬解答~!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 05:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表