問題描述
有一百個燈泡,圍成一個圈。每個燈泡有一個開關。如果一個燈被打開或者關閉,那麼它相鄰的兩個燈泡狀態會與原狀態相反(亮變暗,暗變亮)。請問是否存在一種操作方式可以把這一百個燈泡打開(都處於亮的狀態)。
分析
1.將一百個等編號【1-100】,設置亮爲1,暗爲0,初始都爲0
2.從1號燈泡開始打開,每次隔着前一次按下編號的兩個燈按,N=3n-2 (n表示第n次打開燈泡),這樣一直按下去,直到只有99號燈不亮 爲止,一共需要按33次。
3.這個時候唯一可以操作的就是把99號燈打開,那麼98,100號燈就都滅了,再打開98號燈,那麼99就滅了,97號燈也滅了,這個時候,97滅了,98亮,99,100都滅的,其他都是亮的。那麼由此可以推出,只要一直這樣往前推,直到1號燈變暗,99,100變暗,然後就可以按下100號燈就可以把所有燈都打開了。
推導過程
因爲這個100個燈泡有些多,如果我們要進行推論的話,使用一個與100等效的小規模更爲適合,這裏我們使用的是10個燈泡,將規模整數倍縮小爲原來的十分之一。如果說10個燈泡可以都按亮,那麼100個同理都可以按亮。請看下面的Excel表格的推導演示。