随机模块中的数字是不是有相同的机会出现或不出现? [复制]

Posted

技术标签:

【中文标题】随机模块中的数字是不是有相同的机会出现或不出现? [复制]【英文标题】:Do numbers, in random module, have the same chance to appear or not to appear? [duplicate]随机模块中的数字是否有相同的机会出现或不出现? [复制] 【发布时间】:2021-04-04 00:33:33 【问题描述】:

我想用 Python 构建一个程序,用于生成乐透中的危险号码。例如从 1 到 45 ,我希望 1 到 45(包括 1 到 45)之间的每个数字都有相同的机会出现或不出现,就像在现实生活中一样。 什么是(或什么是)可以做到这一点或更接近做到这一点的适当随机数(近似值)。 示例 值= random.randint(1,46) 1 到 45 之间的所有数字是否有相同的机会出现或不出现在卷轴世界中? 计算机世界中的机会是否像卷轴世界中的机会,如果不是,如何使其更接近? 这与重复无关。 感谢您的帮助

【问题讨论】:

from random import randint 然后randint(1, 45) 是的,所有数字都应该有相同的机会。如果不是这样,那将是底层随机数生成器中的一个严重错误。如果要测试它,只需重复生成随机数并计算每个随机数的出现次数。在数百万个数字之后,您应该看不到统计上的显着差异。 【参考方案1】:

您想从区间 [1, 45] 上的离散均匀分布中抽取 k 个数字,而无需替换。

假设您要选择 6 个数字。然后写

import random

winners = random.sample(range(1, 46), k=6)

然后winners 将是六个随机选择的数字的列表。

解释:

range(1, 45) 表示区间 [1, 45)。换句话说,它不包括 45。所以第二个参数是 46。 sample 从 45 的范围内选择 k 个数字,没有替换。换句话说,就像在典型的彩票中一样,不会选择两次 - 这是您不能指望使用其他 random 模块功能。 默认分布均匀;每个数字被选中的可能性均等。

【讨论】:

感谢您的确认和示范

以上是关于随机模块中的数字是不是有相同的机会出现或不出现? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

回归模型中随机误差项产生的原因是啥

在列表中找到相同数字的最大连续出现而不导入任何模块

导入random模块, 生成0-100间所有数字的随机列表(列表中的数字不重复)

员工实践抓阄脚本

python菜鸟问题,猜数字游戏出现报错

java 从0-16这17个数字中随机取出100个数,要求其中数字2出现4次,数字5出现7次,数字7出现5次,其他任意