圆形灯泡
[温克勒]放置在圆圈上的灯泡编号为1到N,最初都是亮的。在时间t时,检查灯泡编号t,如果它亮,则更改灯泡t+1(mod N)的状态;也就是说,如果灯亮,你就把它关掉,如果灯关,你就什么也不做。证明如果你继续以这种方式绕着圆圈转,最终所有的灯泡都会再次亮起。
小程序允许您尝试解决问题。橙色圆圈模拟灯泡的开启状态,红色圆圈模拟关闭状态。绿色箭头指向正在检查的灯泡。蓝色箭头指向其状态将受到影响的灯泡。
小程序以两种方式概括了这个问题。首先,展望未来可能是一个非1的整数;即,灯泡t的检查可能会影响灯泡t+L,L>0,其中L是“向前看”参数,最初为1。其次,您可以跳过所选数量(S)的灯泡,而不是按自然顺序检查灯泡。
解决方案
工具书类
- P.Winkler,数学难题:鉴赏家的收藏A K Peters,2004年,第81-82页(圆形灯泡)
|活动|
|联系人|
|首页|
|目录|
|代数|
版权所有©1996-2018亚历山大·博戈莫尼
在原问题中,N是任意的,L=1, S=0。除非S是N的倍数--S=0(型号N),Winkler的解决方案无需更改即可工作。该解决方案基于两个观察结果:
这个过程是可逆的:时间t的状态是由时间t+1的状态唯一决定的。
由于可能状态的数量是有限的,因此进程必须通过鸽子洞原理.
一般化不需要特殊处理,但很明显存在一种特殊情况,即所有灯泡都熄灭的状态S=0(型号N),无法访问此状态:
从所有灯泡都打开开始,不可能达到所有灯泡都关闭的死胡同组合。
事实上,要关闭最后一个灯泡,必须检查一个打开的灯泡。这种逻辑在以下情况下不适用S=0(型号N),因为要关闭的灯泡正是被检查的灯泡。
现在是证据。
因为状态的数量是有限的,所以必然会发生状态重复。假设时间t1状态第一次被重复。同时假设重复状态在t吨0<t1.我们想证明这一点t吨0= 0.如果不是这样,我们可以反转一步,验证t时刻的状态1-1和t0-1也是相同的,这将与我们的假设相矛盾,即在时间t第一次出现重复1.
![](../../gifs/tbow_sh.gif)
|活动|
|联系人|
|首页|
|目录|
|代数|
版权所有©1996-2018亚历山大·博戈莫尼