通过MCP连接 →

输入计算

数学公式

广告

结果

Your Random Number
47
between 1 and 100
第一个数字 47
已生成的数字 1
可选数值总数(范围大小) 100

什么是随机数生成器?

随机数生成器(RNG)能在你设定的范围内产生无法预测的数字。本工具用于生成介于最小值和最大值之间的随机整数(两端均包含在内)。你可以只抽一个数字,也可以一次抽取多个,还能自由决定是否允许出现重复值。它适用于各种场景:抽奖活动、模拟彩票选号、从名单中随机抽取中奖者、随机分组、掷骰子和游戏点数、抽样调查,以及任何需要做出公正、无偏选择的时刻。

使用方法

填入范围的最小值最大值,设置你想要抽取的数字个数(1–100),再选择是否允许重复。如果关闭重复选项,生成器只会返回各不相同的数值;当你要的数量超过了范围内可提供的数值总数时,工具会自动把数量限制为可用数值的上限。

公式详解

抽取单个整数时,工具采用

$$x_i = \text{Min} + \left\lfloor \text{rand}() \times \left( \text{Max} - \text{Min} + 1 \right) \right\rfloor$$

其中 \(\text{rand}()\) 是落在 [0, 1) 区间内、均匀分布的小数。把它乘以范围大小 \(\text{Max} - \text{Min} + 1\) 后向下取整,可得到一个从 0 到「范围−1」的偏移量,再把这个偏移量加到 \(\text{Min}\) 上。这样一来,闭区间内的每个整数被抽中的概率都完全相等。要抽取多个数字时,只需重复上述过程:

$$x_i = \text{Min} + \left\lfloor \text{rand}() \times \left( \text{Max} - \text{Min} + 1 \right) \right\rfloor \quad i = 1 \dots \text{Count}$$

若不允许重复,已被抽中的数值会从候选池中移除,确保不会再次出现:

$$\begin{gathered} \{x_1, x_2, \dots, x_k\} \subseteq \{\, \text{Min}, \dots, \text{Max} \,\}, \quad x_i \neq x_j \\[1.5em] \text{where}\quad \left\{ \begin{aligned} k &= \min\!\left( \text{Count},\; R \right) \\ R &= \text{Max} - \text{Min} + 1 \end{aligned} \right. \end{gathered}$$
Advertisement
随机数公式的平面图,将 0 到 1 的随机值映射到一个整数范围
该公式将 rand()(0 到 1)映射到整数范围,并对结果向下取整。
图示在数轴上从最小值到最大值的范围内随机选取一个整数
随机数生成器在所选的最小值和最大值之间均匀地选取一个数值。

实例演示

假设你想在 1 到 6 之间抽出 3 个不重复的数字。范围大小为 \(6 - 1 + 1 = 6\)。生成器从 {1,2,3,4,5,6} 中抽取,每抽中一个就把它移除,因此结果可能是 4、1、6——三个互不相同的数字,绝不重复。而如果允许重复,你则可能看到类似 4、4、1 这样的结果。

常见问题

这些数字是真正随机的吗?它们属于伪随机数——由软件算法生成,在统计上是均匀分布的,用于游戏、抽奖和日常随机选择已经绰绰有余,但不适合用于密码学等安全用途。

最小值和最大值会被抽到吗?会的。两个端点都有可能被抽中,区间在两端都是闭合的(包含端点)。

如果最小值比最大值还大怎么办?工具会自动交换这两个数值,让范围依然合理有效。

最后更新: