40307 如何亮起七個燈泡?—數學的趣味、內容及方法偶拾

終極密碼

遊戲規則:本遊戲為猜密碼的遊戲。密碼為0到100之間的其中1個整數,電腦會提示密碼的所在範圍,玩家必須在6次之內猜到密碼才能過關。
★ 終極密碼為0到100之間 ★
您共有六次機會

如何亮起七個燈泡?
下方每一個方框代表一個燈泡:灰色為關閉、黃色為開啟。
每按下一個燈泡,該燈泡和相鄰的燈泡都會切換開關狀態。
最左和最右的兩個燈泡亦相鄰(以符合圓周性質)。
請嘗試將它們全部開啟。

累計開關次數:0; 遊戲狀態:按燈泡開始遊戲
                                Program originated by jdan @ https://github.com/jdan/LightsOut/
                                Program modified by Shu-chuen Huang on 13th April, 2017

在德國中部城市吉森 (Gießen) 有一所取名 Mathematikum 的數學展館, 由德國數學家 Albrecht Beutelspacher 在 2002 年創辦, 用意是讓參觀者與展品通過互動方式來認識數學。 2015年歌德學院 (Göthe Institut 德國文化協會) 與該展館協作, 把其中一些展品在亞洲多個城市作巡迴展覽, 與當地的某些學校協辦, 讓當地的中小學生有機會親嘗箇中趣味。

2015年五月, 這個名為「觸得到的數學 (Mathematik zum Anfassen) 」的展覽來到香港, 在聖瑪加利男女英文中小學展出。 我有幸受邀參觀, 在五月八日開幕典禮上作了如下的開幕致辭:

很高興有這個機會, 參與 "Mathematik zum Anfassen" 巡迴展覽在香港的開幕典禮, 我非常感謝主辦單位的邀請。

在座各位來到這裡, 不是要聽一名七十歲退休數學教授的沉悶講演, 這名教授完全沒有中小學教學經驗, 又不知道怎樣教小孩子數學。 還好, 很多很多年以前, 他也曾是小孩, 而且至今多少還保留一些童真, 也許, 他可以從這一角度說一點點。

此外, 他有一位德國好友深諳如何教小孩數學之道。 Dortmund 的 Erich Wittmann 教授是我的好朋友, 也是我的良師。 他是德國 "Mathe 2000" 規劃創始人之一;"Mathe 2000" 規劃創始於 1987 年, 主旨在協助教師實施德國 Nordrhein-Westfalen 省的一個小學數學新課程。 Wittmann 教授很喜歡引用中國古代哲學經典莊子外物篇裡的一句話:『仲尼曰:「$[\cdots]$ 嬰兒生無石師而能言, 與能言者處也。」』 意思是, 嬰兒出生後, 毋須跟從優秀的教師也能學會說話, 因為他置身於會說話的人群。

這句話要說明的是, 我們應該讓事情自然發展, 無須加以外來力量, 就好像小孩子不用教導而學會說話。 Wittmann 教授借用這句話來說明, 學習不是由教師強行加諸學生, 而是當學生身處適當設計的環境中, 受到激發而主動產生的。 這次展覽主題是「觸得到的數學」(Mathematik zum Anfassen, Hand-on Mathematics) 大大證實這個想法。 當興趣被喚起後, 最好順勢引領學生繼續他們的數學探索旅程, 並且超越單純的樂趣和玩耍。

餘下五分鐘時間, 讓我與大家分享一些我自己在數學教學上收集的例子。 (我會採用 GeoGebra的軟件輔助講解, 端賴柯志明先生大力協助, 謹此致謝。)

(1) 七巧板和索馬立方 (SOMA Cube)

七巧板是令我有美好回憶的兒時第一份玩具, 相信大家對它都非常熟悉。它明顯地具有豐富的數學內容, 例如, 可以利用兩副七巧板作適當拼合, 說明畢達哥拉斯定理的一個特殊情況。一個有趣的問題是, 一副七巧板可以做出多少個不同的凸多邊形? 獲得這份玩具二十多年後, 我得到一份七巧板的立體版本, 即是索馬立方。索馬立方是由丹麥著名博學者 Piet Hein 發明, 它的數學內容更加豐富。

(2) 直角三角形的內切圓

歷史充滿有趣的例題, 讓我以公元三世紀中國著名數學家劉徽的著作中一個例子說明。 劉徽解答了一個二千多年前提出的數學問題: 如何找出直角三角形內切圓的直徑。 他用了一個非常聰明的剪貼方法, 是典型的「無字證明」(圖1)。

圖1

(3) 立方體的平面展開圖

第三個例子是我在過去兩星期正在思考的一個問題。 我們知道有些平面展開圖能摺成一個立方體, 並不困難, 而且明顯的有多種不同的平面展開圖都能摺成立方體。 但是, 給出一個由六個正方形組成的平面圖, 若不准動手摺, 怎樣決定它是否是立方體的一個平面展開圖? 能否知道有多少種立方體的平面展開圖?它們的形狀又是怎樣的? (圖2) 這些都能成為孩子們的活動, 他們可以在遊戲活動中學習數學。 我的好友 Wittmann 教授曾真真正正在課堂裡進行過這種活動。

圖2

(4) 龍曲線 (dragon curve)

最後一個例子非常簡單, 只須把一長窄紙條摺疊; 摺疊幾次後, 你能猜到那些向出向入的摺痕的式樣嗎? 通過這個探索, 孩子也許學到一點點數學推理。 再者, 多次重複這個步驟, 我們得到美麗迷人叫作「龍曲線」的式樣, 它是現代數學研究對象 --- 碎形幾何 (fractal geometry) --- 的一個例子。 誰還會說摺紙是小孩子的玩意呢?!

讓我借用以下我非常喜歡的一段話作結束:

「(Karl) Groos說得好, 他說孩子年輕, 是因為他們玩耍, 並非因為他們年輕才玩耍; 其實, 他可以加上一句 : 人變老, 是因為他們停止玩耍, 也非因為他們年老便停止玩耍。因為, 說到底, 玩耍就是成長, 而且在智力最高層次上, 它是源於摯愛真理而作的永恆探索。」

(From:G. Stanley Hall, Adolescence: Its Psychology and its Relations to Physiology, Anthropology, Sociology, Sex, Crime, Religion and Education, 1904)

在此祝願展覽成功!同時感謝組織這次展覽仝人, 他們付出的辛勞, 使這次展覽得以成功進行。

多謝各位!

為了更好說明開幕辭中提及的一點, 讓我介紹其中一項展品, 當日它吸引了我的注意和興趣。 展品是一個圓盤, 圓周上有七盞燈泡, 每盞燈泡旁邊有一個按鈕, 按下按鈕, 對著的燈泡和在它左邊及右邊的燈泡將改變開關狀態, 也就是說, 這三盞燈泡, 其中原本亮的不再亮了, 不亮的卻亮了。 一開始的時候全部燈泡都不亮, 要怎樣按鈕, 才能使全部燈泡都亮呢? 至少要按多少次呢?

固然, 你可以用試錯方式 (trial and error) 按鈕, 直至全部燈泡都亮了。 不過, 一來這樣做可沒保證一定成功 (事實上, 是否可以保證成功, 本身已經是一個有趣的問題) , 即使成功了, 要再來一次又得再用試錯方式。 對這個玩意注入一些數學化的處理, 不單解決了這一點, 還添加了趣味。

運用數學解決問題, 第一步是選用好的記法, 以便施行適當的數學手段。 燈泡亮 (或不亮) 可以用 1 (或 0) 代表。按鈕一次更改1或0, 可以用加法描述, 但須注意 $1+0=0+1=1$, $0+0=1+1=0$ (在數學上的正確說法是施行「模2」的加法)。 那七盞燈泡的狀況, 可以表成一連串七個 0 或 1, 叫做一個 7 元組。 開始狀況是 0000000, 要達致的狀況是 1111111。 依規定的條件按一次鈕, 等於把 7 元組加上另一個 7 元組 (逐位相加) , 加上的 7 元組只有三個在相連位置的 1, 相連的意思是指首尾相連, 即是說, 有七個可能: 1110000, 0111000, 0011100, 0001110, 0000111, 1000011, 1100001, 分別記作 $e_1$, $e_2$, $e_3$, $e_4$, $e_5$, $e_6$, $e_7$。 問題化作如下 : 能否在 $e_1$, $e_2$, $e_3$, $e_4$, $e_5$, $e_6$, $e_7$ 中選出若干個, 把它們相加得到 1111111 呢? 至少要選多少個? 如何選?

不難知道 $e_1+e_2+e_3+e_4+e_5+e_6+e_7$ 等於 1111111。 但有沒有可能只用較少部份, 仍然得到 1111111 呢? 又得採用一種好的記法, 把 $a_1$ ($a_1$ 是 0 或 1) 乘上 $e_1$, 得出 $a_1 e_1$ 是 $a_1 a_1 a_1 0000$; 把 $a_2$ ($a_2$ 是 0 或 1) 乘上 $e_2$, 得出 $a_2 e_2$ 是 $0a_2 a_2 a_2 000$; 餘此類推。 什麼情況下得出 $a_1 e_1+a_2 e_2+a_3 e_3+a_4 e_4+a_5 e_5+a_6 e_6+a_7 e_7$ 是 1111111 呢? 要有這樣的結果, 只可能同時有 \begin{eqnarray*} a_1+a_2+a_3&=&1,\\ a_2+a_3+a_4&=&1,\\ a_3+a_4+a_5&=&1,\\ a_4+a_5+a_6&=&1,\\ a_5+a_6+a_7&=&1,\\ a_6+a_7+a_1&=&1,\\ a_7+a_1+a_2&=&1. \end{eqnarray*} 也就有 $a_1+a_4=a_2+a_5=a_3+a_6=a_4+a_7=a_5+a_1=a_6+a_2=a_7+a_3=0$, 由此可得 $a_1=a_4=a_7=a_3=a_6=a_2=a_5$。 顯然, $a_1,\ldots,a_7$ 不能同時是 0, 所以只能同時是 1, 也就是說, 當且僅當全部 $e_1$ 至 $e_7$ 都選上才能相加得出 1111111。 因此, 至少按鈕七次才成。 方法也很簡單, 沿著圓周逐個鈕依次按下去即成。

以上的敘述, 我特意沒有用上數學家習慣用的術語, 否則寫下來倒是蠻簡潔的, 關鍵是那七個 7 元組 (或稱二元域 F$_2$ 上的 7 維向量) 乃線性無關。 沿用同樣的思路, 我們可以得到更一般的結果, 解決了圓周上有 $n$ 個燈泡的問題。 答案是: 如果 $n$ 不是 $3$ 的倍數, 至少要按鈕 $n$ 次, 而且沿著圓周逐個鈕依次按下去即成; 如果 $n$ 是 3 的倍數, 至少要按 $n/3$ 次, 而且沿著圓周每三個鈕依次按下去即成。 證明細節, 留待有興趣的讀者深究吧, 不贅。 從高等數學的視角看, 問題還有很多空間供有興趣的讀者探索, 例如所謂輪換矩陣 (circulant matrix) 的性質, 因為以 $e_1,e_2,\ldots,e_n$ 作為行組成的矩陣, 是一個 $n$ 階輪換矩陣的特殊例子。

也可以提出一個類似的問題, 就是不限制那些改變開關狀態的燈泡只能是相連的三個, 而是任意的 $m$ 個 $(m\le n)$。 用另一種描述方式, 有 $n$ 隻杯子放在一行 (是否放在一圈與否, 並不再重要了) , 每隻杯子覆轉置放, 杯底朝天。 每次把其中 $m$ 隻杯子倒轉過來, 也就是說, 杯底朝天的, 變成杯口朝天, 杯口朝天的, 變成杯底朝天。 至少要進行多少次這樣的動作 (每倒轉 $m$ 隻杯子算一次動作), 才能把全部杯子變成杯口朝天呢?

這個新的問題比原先那個問題容易, 抑或困難呢? 限制條件放寬了, 次數肯定不用那麼多, 但至少要多少次呢? 例如當 $n=7$, $m=3$ 的時候, 答案不再如前述是 7 次, 只用 3 次便成: 0000000$\rightarrow$1110000 (倒轉第一、二、三隻杯子) $\rightarrow$1101100 (倒轉第三、四、五三隻杯子) $\rightarrow$1111111 (倒轉第三、六、七隻杯子) 。

小心進行一些實驗後, 可能得到一些 $n,m$ 是較小的情況的數據結果:

$n$ $m=1$ $m=2$ $m=3$ $m=4$ $m=5$ $m=6$ $m=7$ $m=8$ $\cdots$
1 1
2 2 1
3 3 --- 1
4 4 2 4 1
5 5 --- 3 --- 1
6 6 3 2 3 6 1
7 7 --- 3 --- 3 --- 1
8 8 4 4 2 4 3 8 1
$\vdots$

表中的符號 (---) 是指沒有可能達致全部杯子杯口朝天 (為什麼?)

驟然一看, 不容易看到有什麼規律。 其實, 運用數學處理的思考方式, 是可以抽絲剝繭地把問題解決的, 過程比前一個問題複雜一點, 但解題者也由此獲取更多教益。 有興趣的讀者, 可以自己探索, 也可以參考以下文章: M. K. Siu, I. Stewart, How to invert n cups m at a time? Mathematics Today 46(1), 34-38, 2010.

本文欲表達的信息是, 數學遊戲或者數學展出品怎樣在引發興趣與注入數學內容之間取得平衡。 固然, 為了引發參觀者興趣而淡化數學內容, 未可厚非, 因為做到前者已是功德無量, 讓大眾了解到, 數學並非是枯燥的刻板計算, 也不是與生活脫節的抽象事物而已。 又或者不仔細講解那些不容易在短時間內弄明白的技術細節, 亦是明智之舉, 只需提出一些有關的參考資料供有興趣者自行追查。 但如果在可能範圍內卻仍然刻意迴避數學內容, 是否失掉這個使大眾真正體會數學的機會呢? 而且, 弄不好的話, 大眾只看到娛樂成份而見不到數學, 豈不是有點本末倒置? 曾經有數學家在一本書的前言中說了這樣一段話: 「每位專業數學家都清楚知道, 娛樂成份與認真態度並不相悖。 主要功夫是保證讀者既能歡享其中的娛樂成份, 又不會忽略數學上的重點。」 (J. B. Baylis, R. Haggarty, Alice in Numberland: A Students' Guide to the Enjoyment of Higher Mathematics (1988)) 在這方面, 也許數學教師更能發揮作用, 擔當起這份極有意義的任務, 引導大眾繼續深入探索, 也同時充實了自己。

---本文作者為香港大學數學系退休教授---

文章 推薦

電腦模擬與賭局

假設玩家A和B進行賭博。玩家A有m元,玩家B則有n元,然後擲1個公正的硬幣。如果出現正面就算玩家A贏,反面就算玩家B贏。每次賭注都是1元,如果A贏則A變m+1元、而B變n−1元,並稱此為1回合。雙方不斷地進行賭博,直到某方的錢歸零為止。在這個賭博中,有以下兩個問題:(1)玩家A和玩家B贏的機率各是多少?(2)每投1次硬幣決勝負,都稱為1回合,平均要幾回合,賭局才會結束(某方錢輸光)?....閱讀更多