使用方法
- 「人数」默认 4,范围 2 到 16;「报数上限」默认 100,范围 10 到 2000。改完任意一项立刻重算,光标停在框里按回车同样触发。
- 「当前已报到」默认 0,表示还没开始。它也是跳步入口:直接填 70 就跳到第 70 个数,用来复盘某一段。
- 「下一个数」报到下一个数并更新轮次:结果区给出这个数由第几个人报、是喊「过」还是照报、命中原因是 7 的倍数还是含数字 7。
- 「自动跑完」把剩下的一次跑到底,适合先看全局分布再复盘;「重置」把已报到归零、清空失误计数。
- 结果区上面一行是全局统计:这个上限下一共触发几个、占比多少、还剩几个安全数。下面一段是每人失误数与触发序列。
- 每人失误数按座位列出:4 人局跑完 1 到 100,第 1 人 8 次、第 2 人 6 次、第 3 人 11 次、第 4 人 5 次。
- 下面那张触发序列表默认显示 12 行,点「加载更多」展开全部,点「导出 CSV」存成带字节序标记的文件;「复制结果」复制整段清单。
- 「复制对照表」复制正文里那张不同上限的密度表,制表符分隔,可以直接粘进表格软件。
- 人数填了小数或超出 2 到 16、上限超出 10 到 2000、已报到超过上限,都会给出指明原因的提示。
这个逢7过报数游戏能解决什么问题
这个游戏的规则只有一句:轮到 7 的倍数、或者数字里含有 7 的数,要喊「过」。真正让人翻车的不是整除,而是「含 7」——1 到 100 里 7 的倍数只有 14 个,含数字 7 的却有 19 个,两者交集 3 个(7、70、77),合计触发 30 个。很多人整局都在默背 7 的乘法表,一到 70 就集体出错,因为 70 到 79 这十个数一个都跑不掉。
第二个用处是复盘谁最容易踩。人数只决定轮次,不决定难度:4 人局里第 3 个人要面对的是所有除以 4 余 3 的数,跑完 1 到 100 他会踩 11 次,而第 4 人只有 5 次。想让局面更公平,换人数或换起始报数人就够了;想让局面更热闹,把上限调大。
第三个用处是控制时长。上限 50 触发 11 个(22.00%),上限 100 触发 30 个(30.00%),上限 1000 触发 374 个(37.40%)。同一桌人,上限从 100 提到 1000,要记的安全数从 70 个涨到 626 个,一局能拖多久心里就有数了。
它也能当课堂上的整除练习用:把上限设小、人数设多,学生轮流报数,触发序列就是现成的答案表。
第四个用处是当判定标准用。线上开黑或视频聚会时,谁喊错了常常各执一词;把人数和上限填进来,触发序列表就是标准答案,第几个数该由谁喊「过」一目了然,不必再争。
计算原理与变量说明
整页只有一条判定式和两条映射,没有随机数,也不需要联网。
| 变量 | 定义 | 说明 |
|---|---|---|
| 命中判定 | n % 7 === 0 或数字串含 7 | 两者满足其一即命中 |
| 报数人 | ((k − 1) % p) + 1 | 第 k 个数由第几个人报 |
| 失误数 | 该人报出的命中个数 | 按人数分摊,合计等于总触发数 |
| 密度 | 触发数 ÷ 上限 | 随上限上升但非线性 |
规则的主来源不是整除而是「含 7」。1 到 100 里 7 的倍数 14 个、含数字 7 的 19 个、两者都满足 3 个,总触发 14 + 19 − 3 = 30 个。含 7 的那 19 个是 7、17、27、37、47、57、67、70 到 79 这十个、87、97;70 到 79 连续十个全部命中,才是这游戏最难的一段——很多人只盯着 7 的倍数,一到 70 就集体翻车。
密度随上限上升,而且不是线性的。1 到 50 触发 11 个(22.00%)、1 到 100 触发 30 个(30.00%)、1 到 200 触发 61 个(30.50%)、1 到 500 触发 152 个(30.40%)、1 到 1000 触发 374 个(37.40%)、1 到 2000 触发 749 个(37.45%)。从 500 跳到 1000 密度突然涨了 7 个百分点,因为 700 到 799 这一整百段里百位本身就是 7,一百个数一个都躲不掉。
人数只决定轮次,不决定难度。p 人局里第 r 个人只可能踩到「除以 p 余 r」的那些数,所以 7 的倍数会以 p 为周期在固定几个人之间轮转,这是老手能预判的原因。2 人局第一个触发数 7 由第 1 人报出、4 人局由第 3 人报出、5 人局由第 2 人报出,都只跟余数是几有关。
上限越大越难,但难的是记忆不是算术。1 到 100 有 70 个安全数要记,1 到 1000 有 626 个。加倍上限不会让规则变复杂,只是把「已经报过哪些」这件事推出工作记忆的容量。
顺带一提,触发占比之所以在 1000 附近跳一档,是因为十进制里「含数字 7」的比例随位数上升:一位数里只有 7 这一个,两位数里有 19 个,三位数里跳到 271 个。位数每多一位,想躲开数字 7 就更难,这也是本页要把上限做成可调项的原因。
完整示例(数值仅作演示)
打开页面是 4 人局、上限 100、已报 0。结果区给出 1 到 100 共触发 30 个(30.00%)、安全数 70 个,以及每人失误:第 1 人 8 次、第 2 人 6 次、第 3 人 11 次、第 4 人 5 次,合计正好 30。
连点 7 次「下一个数」,第 7 个数由第 3 人报出,命中原因是「7 的倍数且含 7」,这一个数同时满足两条。再点到 17:17 由第 1 人报出,只满足含 7,不是 7 的倍数。点到 21:第 1 人报出,只满足 7 的倍数。
把「当前已报到」直接填 69,再点「下一个数」,报出的是 70——4 人局里 70 由第 2 人报出,含 7 且是 7 的倍数;往下连点,71、72、73、74、75、76、77、78、79 全部命中,这一段没有安全数。
把上限改成 1000 再点「自动跑完」:触发 374 个(37.40%)、安全 626 个,触发序列表会长到 374 行,默认仍只显示 12 行,需要时点「加载更多」。
逢7过触发对照表
第一张表是不同上限下的触发构成,「复制对照表」复制的就是它。
| 上限 | 7 的倍数 | 含数字 7 | 两者都 | 触发总数 | 密度 | 安全数 |
|---|---|---|---|---|---|---|
| 50 | 7 | 5 | 1 | 11 | 22.00% | 39 |
| 100 | 14 | 19 | 3 | 30 | 30.00% | 70 |
| 200 | 28 | 38 | 5 | 61 | 30.50% | 139 |
| 500 | 71 | 95 | 14 | 152 | 30.40% | 348 |
| 1000 | 142 | 271 | 39 | 374 | 37.40% | 626 |
| 2000 | 285 | 542 | 78 | 749 | 37.45% | 1251 |
第二张表把 1 到 100 的触发序列拆成两类,两者交集只有 7、70、77。
| 类别 | 个数 | 全部取值 |
|---|---|---|
| 7 的倍数 | 14 | 7、14、21、28、35、42、49、56、63、70、77、84、91、98 |
| 含数字 7 | 19 | 7、17、27、37、47、57、67、70、71、72、73、74、75、76、77、78、79、87、97 |
| 两者都满足 | 3 | 7、70、77 |
| 合计触发 | 30 | 14 + 19 − 3 = 30,占 30.00% |
第三张表是几段连续区间:70 到 79 十个全中,700 到 799 一百个全中。
| 区间 | 个数 | 命中 | 原因 |
|---|---|---|---|
| 70 ~ 79 | 10 | 10 | 十位是 7,整段无安全数 |
| 170 ~ 179 | 10 | 10 | 十位是 7,整段无安全数 |
| 700 ~ 799 | 100 | 100 | 百位是 7,整段无安全数 |
读法:第一张看密度怎么随上限走,500 到 1000 那一段跳了 7 个百分点;第二张看两类规则的重叠,交集只有 3 个;第三张看连续区间。
结果边界、舍入与适用说明
- 人数留空、写成小数或超出 2 到 16 时分别给出对应提示;1 人局没有轮次可言,不在范围内。
- 上限留空、写成小数或超出 10 到 2000 时给出指明范围的提示,不自动取边界值。
- 「当前已报到」填了负数或超过上限时提示它必须在 0 到上限之间;填了小数会提示取整数。
- 已报到等于上限时点「下一个数」,提示已经报完,请点「重置」或把上限调大。
- 密度四舍五入到两位小数,因此 500 与 200 的密度看起来接近(30.40% 与 30.50%),但触发数差了近三倍。
- 每人失误数之和恒等于总触发数,这是校验分摊有没有算错的最快办法。
- 命中原因分为 7 的倍数、含数字 7、两者都满足三种,7、70、77 属于第三种。
- 本页从 1 开始报,0 不在序列里;含数字 7 只检查十进制写法,不涉及负数或其他进制。
- 整页不联网、不写本地存储,人数与上限只用于本次计算。
常见问题
7 的倍数和含数字 7,哪一类更多?
1 到 100 里 7 的倍数 14 个、含数字 7 的 19 个,含 7 更多。两者交集 3 个(7、70、77),合计触发 30 个。
为什么一到 70 就集体出错?
70 到 79 这十个数的十位都是 7,整段全部命中,没有安全数。只盯着 7 的倍数背的人会漏掉 71、72、73 这些不是倍数的数。
上限从 500 提到 1000 为什么突然难很多?
因为 700 到 799 这一百个数百位就是 7,一个都躲不掉。密度从 30.40% 跳到 37.40%,涨了 7 个百分点。
人数多了会不会更难?
不会。人数只决定轮次:p 人局里第 r 个人只可能踩到除以 p 余 r 的数,难度不变,只是每人分到的触发数变了。4 人局跑完 1 到 100 是 8、6、11、5 次。
怎么知道该谁先报?
第 k 个数由 ((k − 1) % p) + 1 号报出。2 人局第一个触发数 7 由第 1 人报、4 人局由第 3 人报、5 人局由第 2 人报。
已经报完了还想继续怎么办?
把「报数上限」调大再点「自动跑完」,或者先点「重置」重来一局。已报数不能超过上限,超了会给出提示。
能不能跳到某一段复盘?
能。直接在「当前已报到」里填 69,再点「下一个数」就落在 70,那一段连续十个全部命中。
这一页会上传人数和上限吗?
不会。三个数字只在本页的脚本里参与取余与计数,没有发起任何网络请求,也没有写入本地存储。