一個都不能遺漏:柵欄錯誤
By Peace Foo 胡適之
你要在下午一時至四時完成科目一至四的功課。如果你每小時完成一份就能準時完成所有功課,對或錯?
如果是五月一日至四日呢?如果每天做一份,你能及時跟功課說再見嗎?
這些問題背後引伸出更多問題 [1]:為甚麼小時跟日子的算法會有所不同?我們應怎樣數起?學校教的知識應用起來永遠不會像想像中簡單 — 顯淺如數算事物也是如此。
要搞清楚這一連串的問題,我們先要回到幼稚園。我們學會如何從一、二、三……數算物件,亦學會這個數算過程讓我們知道物件的數量 — 不論是鉛筆、房子或是日子。為了簡化事情,我們為物件標上數字並以此代替數算:六月的日子被標上數字1至30,順理成章地六月就有30天 [1]。
然後我們學習減法。老師拿著六枝鉛筆,再把當中四枝逐枝取走,藉此示範6 – 4 = 2。減法是算術運算的一種,指把物件數目改變的動作(「運算」),在上述例子即是取走鉛筆的動作。現在我們考慮的是稍為不同的概念:兩個數字之間的間距,這可不是數字本身!在學習數線之後,我們以由6到2之間的四個箭頭表示6 – 4 = 2:
它們清楚表示減法考慮的是由2到6之間的四個「間距」,但這次運算其實「碰」到了五個數字:2、3、4、5、6。
四和五之間的分歧就是柵欄錯誤(fencepost error;註一)了。假設在前往幼稚園的路上你經過一道八米長的籬笆,當中每兩米豎立了一道籬杆 [2],那麼籬杆的總數是多少?你可能不加思索便用除法計算出那裡有四道籬杆,但在首尾各豎了籬杆的正常籬笆中,籬杆的數目應該是五道。(你確定那是正常的籬笆嗎?讓我們稍後回到這個問題。)
錯誤出於哪裡?問題中有兩樣東西是你可以數算的:籬杆之間籬笆的數目,以及籬杆的數目。以除法運算時,你把籬笆的總長度(八米)除以每段籬笆的長度,那會得出籬笆有多少段這個數目,但問題問的是籬杆數目而不是籬笆,意味著解決這些問題時我們必須考慮要數算的是物件還是間距的數目 [1]。
一旦能分辨出籬笆和籬杆,就很容易發現日常生活中關於數算的習慣其實充斥著怪誕之處。在樂理中,一個三度是指相距三個音的音程:C-D-E是一個三度,E-F-G也是 [2],可是把它們結合時你會得到C-G,一個五度。換言之,兩個三度得出一個五度;這就像用兩道籬笆駁成一道更長的籬笆,數算之下會乍見多出一條「E柱」。問題的癥結在於三度和五度理應是指兩個音之間的距離,但卻以當中有多少個音來命名,即是數算的其實是籬杆而不是籬笆 [3]。
同樣地,籬笆有時也會偽裝成籬杆。慶祝生日時你想紀念的其實是出生以後活了多少年這個事實 [2, 3],甚至從日常用語中也能看出端倪:在你慶祝的第一個生日那時你剛好一歲。歲數是籬笆,但我們慶祝的是生日,是籬杆。
在原來的問題中,你要完成四份功課,而你要做的是把四份功課分配在四個時段內完成,所以要考慮的是問題中的籬笆。在問題的用字上,下午一時、二時……四時等以小時計的實際上是時間的標記(籬杆),而五月一日、二日……四日的日子則是時間的間距(籬笆)[4];前者會給出三小時的間距,後者則會給出四天的間距。因此你臨急抱佛腳的「趕功課大計」只能在後者行得通,在前者卻會碰得一臉灰。
這也帶出另一個問題,就是究竟你是由零開始數還是由一數起 [3]。我們都知道「一樓」在不同國家分別可以指地下或是地下上面的一層;你有十隻手指,但不少人會忘記如果比手勢的話你也可以由零的手勢比起,這樣便能數算11樣物件 [3],但這些大多都只是語言上的習慣。如果你想想,把一列籬笆逐段標記成 #1、#2……後到底應該如何標記當中的籬杆,那就更有趣了,因為其中一道籬杆少不免要被標記為 #0。(如果你把籬笆想成歲數,籬杆想成生日,那其實與上面生日的例子同出一轍,當中你出生那天正是你的「零歲生日」。)這就是為甚麼很多關於籬杆和籬笆的問題使人困惑的根源了。因此,如果你再看一次上面關於八米籬笆的問題,你會發現是否應該由零數起取決於你想數的是籬笆還是籬杆。數算籬笆很容易,數算籬杆就需要你在前面加上那個額外的零 — 零的手勢、零樓(地下或「G樓」)、零歲生日 — 並在總數加上一 [1]。
因此理解問題的背景非常重要:你要數算的是物件數目還是間距,籬杆還是籬笆?此外你要處理的籬笆是哪一種?最後留下一個問題給你想想:假設幼稚園的八米籬笆兩端原來各自連著牆壁而不需要籬杆,又或是籬笆圍成一個圓圈而當中沒有缺口,那麼,現在又需要多少道籬杆呢?
1 柵欄錯誤:英文「fencepost error」中「fencepost」指的是籬桿,而中文較常見的翻譯「柵欄錯誤」卻把重點放於籬笆。
參考資料:
[1] Azad, K. (2009, April 28). Better Explained: Learning How to Count (Avoiding the Fencepost Problem). Retrieved from https://betterexplained.com/articles/learning-how-to-count-avoiding-the-fencepost-problem/
[2] Propp, J. (2017, November 16). Mathematical Enchantments: Impaled on a fencepost. Retrieved from https://mathenchant.wordpress.com/2017/11/16/impaled-on-a-fencepost/
[3] Parker, M. (2019). Humble Pi: A Comedy of Maths Errors. London, UK: Allen Lane.
[4] Lamb, E. (2016, May 10). Roots of Unity: How to Confuse a Traveling Mathematician. Retrieved from https://blogs.scientificamerican.com/roots-of-unity/how-to-confuse-a-traveling-mathematician/