鱼C论坛

 找回密码
 立即注册
查看: 152|回复: 6

[课后作业] 第008讲中的抛硬币,为什么要生成1~10的随机数,而不是1~20,1~100呢求...

[复制链接]
发表于 2024-7-18 14:51:37 | 显示全部楼层 |阅读模式

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

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

x
import random

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

print("开始抛硬币实验:")
while i < counts:
    # 生成1到10的一个随机数
    num = random.randint(1, 10)

    # 如果随机数可以被2整除,则代表正面,否则代表反面
    # num是随机的,所以正面和反面的概率也是随机的
    if num % 2:
        print("正面", end=" ")
    else:
        print("反面", end=" ")

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

使用道具 举报

发表于 2024-7-18 14:52:57 | 显示全部楼层
在这个抛硬币的程序中,生成1到10的随机数是为了模拟抛硬币的结果。硬币有两面,我们可以用随机数来表示抛硬币的结果:比如,假设1到10之间的奇数代表正面,偶数代表反面。这样做的好处是可以简单地通过取随机数的奇偶性来模拟硬币的两种可能结果。

为什么不选择生成更大范围的随机数,比如1到20或者1到100呢?其实,这个取决于模拟的粒度和需求。生成1到10的随机数,相当于将硬币抛出的结果分成了10个区间,每个区间的概率是相等的。如果选择更大的范围,比如1到20或者1到100,会增加模拟的精细度,但同时也会增加程序的复杂度和运行时间。在这个简单的抛硬币模拟中,1到10的范围已经足够涵盖硬币抛出的两种结果,并且保持了程序的简洁性和效率。

所以,选择生成1到10的随机数,是为了在简单和模拟准确度之间找到一个平衡点。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-18 15:54:16 | 显示全部楼层
其实的话随机数范围是1~20也没问题。

原理:
因为num%2最后只可能是0或1(True or False)
所以num只要是一个正整数即可

不信的话可以自己试试,将范围扩大,实践出真知!
“纸上得来终觉浅,绝知此事要躬行”


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

使用道具 举报

发表于 2024-7-18 16:16:33 | 显示全部楼层
当然可以。生成多少都没问题。前提是奇数偶数是相同的数量
可以是1-2  可以是5-20 可以是666-777,都可以
但是不能是 1-3,不能是20-50,不能是111-333
因为后边列举这些奇数和偶数并不一样多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-18 17:14:00 | 显示全部楼层
生成多少都没问题。前提是奇数偶数是相同的数量
因为抛硬币正面和反面的概率一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-18 19:07:35 | 显示全部楼层
三体人的智子 发表于 2024-7-18 15:54
其实的话随机数范围是1~20也没问题。

原理:

其实这个 n 必须是偶数,才能保证奇偶数数量相等
(不过数大了可以忽略那一点误差
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-7-26 15:15:50 | 显示全部楼层
多谢大佬们的指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-8 07:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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