通过MCP连接 →

输入计算

Press 抽取 to draw a random integer from 1 to 10. Each draw is independent and every number has a 10% chance.

数学公式

数学公式: 1到10随机数生成器

广告

结果

结果
6
Pick # 1
范围 1 to 10 (inclusive)
每个数字的概率 0.1 (1 in 10)
换算成百分比 10%

1到10随机数生成器是什么?

这款工具会在1到10之间(含两端)随机抽取一个整数。它采用伪随机数生成器(PRNG),因此每次点击「抽取」按钮都会得到一个全新且相互独立的结果。1到10这十个数字出现的概率完全相同,都是十分之一,非常适合做游戏、抽奖、课堂互动、做决定,以及任何需要快速又公平地抽个数字的场合。

十根等高的柱子,标注 1 到 10,表示概率相等
1 到 10 中的每个数字被选中的概率都相等,均为 10%。

使用方法

直接点击抽取即可。屏幕上那个大号数字就是你的结果,而「抽取次数」会显示本次使用中你已经抽了多少次。再次点击「抽取」就能生成新的数字,每抽一次计数器加一。点击重置可将计数器归回到1,重新开始。

公式原理

该生成器在区间 [min, max] 内做均匀离散抽取。当 \(\text{min} = 1\)、\(\text{max} = 10\) 时,可能取值的个数为 \(\text{max} - \text{min} + 1 = 10\)。结果按下式计算

$$\text{result} = \text{min} + \left\lfloor \text{rand}() \times \text{count} \right\rfloor$$

其中 \(\text{rand}()\) 返回 \([0, 1)\) 区间内的均匀实数。取整函数 floor 将其转换为 0 到 9 的下标,再加上最小值就把范围平移到了 1 到 10。程序还加了一道保护机制,即使生成器偶尔返回了恰好为 \(1.0\) 的值,输出也绝不会超过最大值:

$$R = \min\!\left(10,\; 1 + \left\lfloor \text{rand}() \times 10 \right\rfloor\right), \quad P = \frac{1}{10} = 10\%$$
Advertisement
一条 0 到 1 的数轴被分成十段,分别对应 1 到 10 的整数
把 0 到 1 之间的随机小数放大并向下取整,得到 1 到 10 中的一个整数。

实例演示

假设某次抽取时 \(\text{rand}()\) 返回 \(0.4732\),则

$$\text{result} = 1 + \left\lfloor 0.4732 \times 10 \right\rfloor = 1 + \left\lfloor 4.732 \right\rfloor = 1 + 4 = 5$$

所以结果就是 5。下一次抽取时 \(\text{rand}() = 0.987\),则

$$\text{result} = 1 + \left\lfloor 9.87 \right\rfloor = 1 + 9 = 10$$

此时在第 2 次抽取得到结果 10。任何一个特定数字(例如 7)出现的概率都是 \(\frac{1}{10} = 0.1 = 10\%\)。

常见问题

这些数字是真正随机的吗?它们属于伪随机:在日常使用中统计上是公平的,但不具备密码学级别的安全性,因此请勿用于安全验证或彩票等高要求场景。

同一个数字会重复出现吗?会的。每次抽取都相互独立,结果也不会去重,因此出现重复完全正常,也在意料之中。

为什么我抽出来的分布看起来不均匀?在抽取次数较少时,结果看上去可能偏向某几个数字。但只要抽取的次数足够多,每个数字所占的比例就会逐渐趋近于总数的10%。

最后更新: