💡 点击全屏打开 关灯游戏动态交互演示
趣味杂题 · 数论 · 算法逻辑

百灯翻转挑战:寻找隐藏的完全平方数

1. 什么是“百灯翻转问题”?
“百灯翻转问题”(100盏灯问题)是一个经典的数学与算法逻辑谜题。它不仅考验个人的逻辑推理能力,还巧妙地将生活中的物理现象(开关灯)与抽象的数学概念(因数与完全平方数)完美结合在一起。

2. 问题描述:100 轮的规则

想象一下,在一个长长的走廊里有 100 盏灯,它们从 1 到 100 依次编号。最初,所有的灯都是关闭的。接下来,我们要进行 100 轮操作:

问题是:经过这整整 100 轮操作后,最后哪些灯是亮着的?

3. 数学奥秘:因数与奇偶性

这个问题的核心在于分析每一盏灯被按开关的次数

那么,第 $i$ 盏灯会被按多少次呢?它只会在那些轮数是其因数的回合中被按到。例如,第 12 盏灯:

$$12 = 1 \times 12 = 2 \times 6 = 3 \times 4$$

它的因数有 1, 2, 3, 4, 6, 12。因此它会在第 1, 2, 3, 4, 6, 12 轮被按到,总共 6 次(偶数次),所以最后它是关着的。

灯泡编号 ($i$) 包含的因数 被按次数 最终状态
2 1, 2 2次 (偶数)
12 1, 2, 3, 4, 6, 12 6次 (偶数)
16 1, 2, 4, 8, 16 5次 (奇数)

4. 破局关键:完全平方数的特殊性

绝大多数数字的因数都是成对出现的。因此,大多数灯都会被按偶数次。

那么,什么样的数字会有奇数个因数呢?答案是完全平方数

例如,数字 16,它的因数有 1, 2, 4, 8, 16。注意这里的因数 4:

$$4 \times 4 = 16$$

这个因数 4 在这里没有成对的不同数字与之对应(它是自己乘自己),所以 16 共有 5 个因数(奇数个)。

5. 最终答案

经过 100 轮翻转后,最后亮着的灯,它们的编号一定是完全平方数。在 1 到 100 之间,完全平方数有:

$$1, 4, 9, 16, 25, 36, 49, 64, 81, 100$$

结论:总共只有这 10 盏灯是亮着的。这个经典谜题用一种非常直观的方式,展示了数论中关于因数奇偶性的规律。