亮燈問題、楊輝三角與Sierpinski三角形

背景

  在生日前幾天,我出了五道題作為有獎問答,亮燈問題作為第二題,一道規律題出場。答案很容易猜到——只需要模擬一下n=1n=4的情況就可以猜到。然而給出一個證明卻並不那麼簡單,甚至可能涉及比表象深得多的東西。

亮燈問題

  有n盞燈環形排列,順時針依次標號為0..n-1。初始時刻為0,所有燈的亮滅(我們稱之為狀態)隨機。下一時刻每盞燈的亮滅取決於當前時刻這盞燈與順時針方向下一盞燈的亮滅。若兩盞燈狀態相同,則下一時刻該燈滅,否則該燈亮。

  試求:當n滿足什麼條件時,能保證在初始狀態隨機的情況下,時刻n所有燈均為滅?

答案

n=2^p quad (p in mathbb{N})

證明

  環形排列下,直接對燈的標號進行加減可能會出現越界的情況,所以我們需要對結果取模,即第i盞燈順時針方向下k盞燈為第(i+k) bmod n盞燈。

  定義S_t^i表示時刻ti盞燈的亮滅,0表示滅,1表示亮。

異或?

  異或運算應用於邏輯運算(也可以看作為二進位下)。oplus為異或運算符。其運演算法則相當於不帶進位的二進位加法:0 oplus 0=0 1 oplus 0=1 0 oplus 1=1 1 oplus 1=0

  即二進位位相同則結果為0,不同為1

  根據異或運算的定義及題意,我們可以得到:S_t^i=S_{t-1}^i oplus S_{t-1}^{(i+1)bmod n}

  又因為異或運算等價於不帶進位的加法,而我們只關注S_t^i的奇偶,所以有:S_t^i=left(S_{t-1}^i+S_{t-1}^{(i+1)bmod n}right) bmod 2

  由於在時刻t,標號為i的燈受到上一時刻標號i(i+1) bmod n的燈的影響,而在時刻(t-1),標號(i+1) bmod n燈受到時刻(t-2)下標號(i+1) bmod n(i+2) bmod n燈的影響。繼續推導可知,時刻ti燈受到時刻0i燈到(i+t) bmod n燈初始狀態的影響,並且可能不止一次

  注意有a bmod p+b bmod p=(a+b) bmod p的性質,所以方便起見,我們可以將取模運算放在最後操作。以下S的值域將會擴充到自然數集,但是其意義仍為S bmod 2

受幾次影響?

  定義Z_t^k表示時刻t下標號為i的燈受到(i+k) bmod n燈初始狀態的影響次數,則有:S_t^i=sum_{j=0}^t Z_t^j S_0^{(i+j) bmod n}

  根據SZ的定義,我們有:S_{t+1}^i=sum_{j=0}^{t+1} Z_{t+1}^j S_0^{(i+j) bmod n}=S_t^i+S_t^{i+1}

  展開上式,得:sum_{j=0}^{t+1} Z_{t+1}^j S_0^{(i+j) bmod n}=sum_{k=0}^t Z_t^k S_0^{(i+k) bmod n}+sum_{l=0}^t Z_t^l S_0^{(i+l+1) bmod n}

  因為Z的定義,所以Z_t^{-1}Z_t^{t+1}是無意義的,值為0,則上式可改寫成下式形式:begin{align}sum_{j=0}^{t+1} Z_{t+1}^j S_0^{(i+j) bmod n}&=sum_{k=0}^{t+1} Z_t^k S_0^{(i+k) bmod n}+sum_{l=0}^{t+1} Z_t^{l-1} S_0^{(i+l) bmod n} &=sum_{k=0}^{t+1} left(Z_t^k S_0^{(i+k) bmod n}+Z_t^{k-1} S_0^{(i+k) bmod n}right) &=sum_{k=0}^{t+1} left(Z_t^k+Z_t^{k-1}right) S_0^{(i+k) bmod n} end{align}

  所以有Z的推導公式:Z_{t+1}^k=Z_t^{k-1}+Z_t^k

  根據定義可以得到邊界條件:Z_0^0=1

  不難發現ZC的邊界條件與推導公式相同,則有:Z_t^k=C_t^kS_t^i=left(sum_{j=0}^t C_t^j S_0^{(i+j) bmod n}right) bmod 2

均滅?

  若時刻n所有燈均滅,則上一時刻即時刻(n-1)時,標號i的燈應受所有燈影響或不受任何一燈影響。但通過C_{n-1}^k的奇偶性我們發現,不受任何一燈影響是不可能的。則i燈應受所有燈影響,即為:C_{n-1}^k=1 quad (n in Result, k in mathbb{N}, 0 leq k leq n-1)

  不妨將C_t^k bmod 2即楊輝三角對2取模的圖形)列出來:

  不難發現規律:第2^p-1行符合全為1的條件,也就是說,答案為n=2^p (p in mathbb{N})(別忘了n=1的情況!)而如果我們將1染為黑色等邊三角形,將0染為白色等邊三角形(如圖),我們將得到Sierpinski三角形(謝爾賓斯基三角形)。Sierpinski三角形是分形圖形的一個經典圖形,在Matrix67的博客里也有提及。

Sierpinski三角形?

  接下來,我們需要證明為什麼第2^p-1行符合全為1的條件。則我們需要證明:C_{2^p-1}^k equiv 1 pmod 2 quad (k in mathbb{N}, 0 leq k leq 2^p-1)

  展開得:frac{(2^p-1)!}{k!(2^p-1-k)!} equiv 1 pmod 2

  定義G_i表示i分解質因數後2的個數。定義T_r^l=sum_{j=l}^r G_j,則上式可由下式證得:T_k^1=T_{2^p-1}^{2^p-k}

  若將i寫為二進位,則G_i為二進位下i末尾0的個數。不難發現有以下兩條性質:G_i=G_{i+2^j} quad (i, j in mathbb{Z^{+}}, 2^j > i)G_{2^j}=j quad (j in mathbb{Z^{+}})

  二進位下(i+2^j)可由二進位下i的第j位由01得到,由於第j位在限制條件下一定比i的最高位更高,所以在第j位添加1對末尾0的個數即G無影響,第一條式子得證。第二條式子也可以根據G的定義得到。

  接下來我們需要證明:在1..2^p-1的範圍內,G2^{p-1}為軸對稱。

  首先注意到,在p=1的條件下,該結論成立。我們需要將結論擴展到p in mathbb{Z^{+}}

  若在1..2^p-1範圍內,G2^{p-1}為軸對稱,則有:G_i=G_{2^{p-1}+(2^{p-1}-i)}=G_{2^p-i}

  又因為G_i=G_{i+2^p},所以:G_{i+2^p}=G_i=G_{2^p-i}

  並且有G_{2^p}=G_{2^p},所以在1..2^{p+1}-1範圍內,G2^p為軸對稱。所以我們可以將p=1下的結論擴展到p in mathbb{Z^{+}}

  根據G的對稱性,我們有下式成立:T_k^1=T_{2^p-1}^{2^p-k}

  所以下式成立:frac{(2^p-1)!}{k!(2^p-1-k)!} equiv 1 pmod 2

  得:C_{2^p-1}^k equiv 1 pmod 2 quad (k in mathbb{N}, 0 leq k leq 2^p-1)

  得證。

  根據第2^p-1行均為1,我們可以推得第2^p行只有C_{2^p}^0C_{2^p}^{2^p}1,其餘為0,這兩個1將分別向下擴展到2^{p+1}-1行,形成與12^p-1行相同的Sierpinski三角形。

  所以楊輝三角在對2取模的情況下,將會形成Sierpinski三角形。

  我們的問題也證明完畢,證得答案為n=2^p (p in mathbb{N})

  本文同步發表於我的博客。

  本人才疏學淺,難免有錯漏之處,請於評論區指正,謝謝。

  版權所有,轉載請聯繫作者,禁止任何形式的未經授權的轉載。


推薦閱讀:

科學家爸爸如何讓孩子愛上數學?——啟蒙篇(三)
情(píng)人(ān)節(yè) ? 有人推妹子,有人推公式……
常微分方程的解法的推導過程?
用數學的語言看世界
10560 怎樣在球面上「均勻」排列許多點?(上)

TAG:数学 | 趣味数学 |