通过MCP连接 →

输入计算

数学公式

广告

结果

生成的随机数
250, 567, 16, 623, 78, 939, 637, 189, 585, 571, 676, 238, 726, 979, 229, 166, 454, 177, 13, 40, 704, 966, 994, 286, 117, 988, 489, 446, 841, 932, 446, 378, 571, 370, 213, 199, 552, 699, 825, 560, 433, 497, 742, 558, 702, 418, 974, 684, 951, 446
范围(含端点) 1 to 1000
可用的不同整数个数 (N) 1,000
已生成数量 50

这个工具能做什么

整数均匀随机数生成器会在你设定的闭区间内,均匀抽取并生成一组随机整数。所谓"均匀",是指上下界之间的每一个整数被抽中的概率完全相等。你可以自行决定生成多少个数字,以及同一个数值能否重复出现。它适用于彩票选号、骰子和游戏点数、从数据集中随机抽样、分配编号 ID、A/B 测试分组,以及统计学课堂演示等多种场景。

如何使用

在"起始范围"中填入下界,在"至"中填入上界(可取 1 到 100000 之间的任意整数)。在"数量"中设置你想要生成的数字个数(1 到 100)。选择"允许"即可出现重复值(有放回抽样),选择"不允许"则保证结果各不相同(无放回抽样)。如果你不小心把上下界填反了,工具会自动帮你调换顺序。

计算公式详解

区间 \([\text{lo}, \text{hi}]\) 共包含 \(N = \text{hi} - \text{lo} + 1\) 个不同的整数。单次抽取的公式为 $$r = \text{lo} + \left\lfloor U \times N \right\rfloor,$$ 其中 \(U\) 是 \([0, 1)\) 区间内的均匀随机实数。将 \(U\) 乘以 \(N\) 后取下整,得到一个 \(0\) 到 \(N-1\) 之间的整数,再加上 \(\text{lo}\) 进行平移。这样就保证了每一个候选值出现的概率恰好为 \(1/N\)。当允许重复时,工具会针对每个需要生成的数字独立重复上述抽取过程。当不允许重复时,工具会不断抽取并丢弃已经选过的数值,直到凑齐所需数量的不重复数字为止——因此要求生成数量不能超过 \(N\)。

Advertisement
Diagram mapping a continuous unit interval U from 0 to 1 into N equal segments, each pointing to one integer outcome
A uniform value U in [0,1) is scaled and floored to land in one of N equal slots.
Flat number line showing an inclusive integer range from lo to hi with evenly spaced equal-height bars indicating equal probability
Each integer in the inclusive range lo..hi has an equal chance of being chosen.

实例演示

范围 1 到 6,生成数量 5,允许重复:每次抽取为 $$r = 1 + \left\lfloor U \times 6 \right\rfloor,$$ 相当于掷一颗六面骰子。可能的结果是 4、1、6、4、2(其中 4 出现了两次,这是允许的)。如果不允许重复,则会得到五个互不相同的数值,例如 3、5、1、6、2。而想从 1 到 6 中抽出 7 个不重复的数字是不可能的,因为这个范围内总共只有六个整数。

常见问题

为什么每次得到的结果都不一样?本生成器是非确定性的,每次运行都会重新抽取全新的随机值,因此输出本就会有所变化,这是设计使然。

最小值和最大值可以相等吗?可以。如果两者相同,则 \(N = 1\),唯一可能的结果就是这个数本身。

如果我要求的不重复数字超过了实际存在的个数会怎样?在"不允许"模式下,由于没有足够多的不同整数来满足你的要求,工具会报错提示。

最后更新: