《從掐指一算到穿越四次元的數學魔術》:破解「抽牌猜數字」的紙牌魔術

《從掐指一算到穿越四次元的數學魔術》:破解「抽牌猜數字」的紙牌魔術
Photo Credit: 中央社

我們想讓你知道的是

有一個免手法魔術,是幾乎每個人一生當中似乎都會遇到的紙牌魔術,它通常叫做三疊紙牌魔術(Three Pile Trick),傳統上是用21張牌來玩,理由我搞不懂:用到27張牌也能變一模一樣的魔術。

文:麥特.帕克

魔術怎麼變?

撇下兩性關係,我們也可以把演算法應用到正整數上,甚至更好!只不過,按預先規定逐步做數字運算,聽起來也許不大刺激,主要是因為這真的不刺激。

但那不是重點:執行演算法這件事本身就不大有趣。數學家對演算法興致高昂的原因不是他們喜歡做重複的差事(儘管很多人還是愛做),那就像你是因為很喜歡量好材料然後攪拌而去烤蛋糕(我就是這樣)。數學家之所以喜歡演算法,是因為演算法能夠做到的事。數學家喜歡做計算,也喜歡把它吃掉。

  • 第1步:取任何一個正整數。
  • 第2步:把每位數字相加起來。
  • 第3步:如果算出的數字和超過一位數,就重複做第2步。
  • 第4步:把最後的一位數答案寫下來。

這個演算法是找出任何一個整數除以9的餘數的方法。你可以隨便找個整數來驗算看看,答案會等於比它小的第一個9的倍數與它的差數。像這樣反覆把所有的數字相加,直到得出一位數的答案為止的產出結果,稱為一個整數的數字根(digital root)。這個過程本身稱為去九法(casting out nines),因為它是從一個整數去掉9的倍數。去九法是數學上最古老、最重要的演算法之一。

在上一個千禧年之交,活躍於現今伊朗的科學家伊本.西那﹝(IbnSina,他的拉丁文名字是阿維森納(Avicenna)﹞在寫到這個去九法時,把它稱為「印度人的方法」,暗示這個方法已經使用很久了。在費波納契(Fibonacci)把印度-阿拉伯數字引進歐洲前,管帳的人早就在使用去九法了。

已知最早的金融數學印刷本《特雷維索算術》(Treviso Arithmetic,出版於1478年),就描述了確認複雜算術問題答案的數字根要等於所相加的數的數字根總和的方法。他們把9去掉,來驗算重要的財務計算結果。接下來我們準備用這個方法變個魔術。

自願的觀眾:

  • 第1步:取任何一個正整數。
  • 第2步:把這個數乘以9。
  • 第3步:大聲唸出乘出來的答案,但其中一位數字不要唸出來。

魔術師:

  • 第1步:算出自願觀眾唸出來的所有數字的數字根。
  • 第2步:知道所缺的那個數字是數字根與9的差數。
  • 第3步:宣布漏掉沒說出的是哪個數字。

觀眾:

  • 第1步:感到不可思議。

這是個很棒的魔術,因為不論自願的觀眾選了哪個整數,只要乘上9,乘出的新數的數字根一定是9。算出他們告訴你的那些數字的數字根後,你就能知道缺的那個數字是讓數字根加到9所欠缺的那個數。利用去九法算出數字根,也很容易心算出來,因為需要處理的數永遠不會超過一位數。

這聽起來實在太簡單了,但是效果很讚。我有一次在倫敦漢默史密斯阿波羅(HammersmithApollo)會館的舞台上,在3000多人的面前表演這個把戲,當時最令人緊張的一點,是希望自願的觀眾按電子計算機的時候不要出錯。

這個把戲更具雄圖的版本(有這麼多人在場,我還不敢嘗試)需要掩飾一下乘以9的步驟。如果請自願的觀眾拿著計算機,不斷地把隨機的數字相乘起來,直到螢幕上無法顯示更多位數的答案為止,這時他們很可能在無意間乘了9,要不然就是至少乘了兩個帶有因數3的數。

確切地說,把許多隨機的一位數相乘起來,得出的八位數答案有96.75%的機會會是9的倍數(註)。不過,我不願意承擔那3.25%的機會,讓自己在那麼多人面前像個白痴!

​​

註釋:為了算出這個機率,我寫了一個電腦程式,產生10億次這樣的隨機數字,而100億個當中有9,674,919,018個是9的倍數。寫電腦演算法來檢驗一個魔術演算法,讓我非常開心。

​​

有一整套稱為免手法魔術(self-working trick)的魔術,其實就是靠演算法做到的魔術,只要魔術師一步一步照著指示做,魔術就一定會成功。有一個免手法魔術,是幾乎每個人一生當中似乎都會遇到的紙牌魔術,它通常叫做三疊紙牌魔術(Three Pile Trick),傳統上是用21張牌來玩,理由我搞不懂:用到27張牌也能變一模一樣的魔術。

魔術師誇口說(這是一定要的)他可以找出自願者隨機選出的任何一張牌。

  • 第1步:自願的觀眾從一疊27張牌中挑出一張,記住花色和數字,然後把牌放回去並重新洗牌。
  • 第2步:魔術師以牌面朝上的方式發牌,分成三疊(依照同樣的發牌方向,每次在每疊牌各發一張)。
  • 第3步:自願者指出他們選中的牌在哪一疊裡,但不要指出是哪張牌。
  • 第4步:魔術師收起三疊牌,把自願者所指的那一疊放在中間。
  • 第5步:第2、3、4步再重做兩次。
  • 第6步:現在自願者挑選的那張牌正好在27張牌的正中央,也就是從最上面開始算的第14張。

魔術師現在可以運用自己最具創意的方法,揭曉第14張牌。我個人最喜歡的方式,是一開始先把牌一張一張翻開,一邊聲稱自己在搜尋自願者臉上的反應,接著你就一直翻到差不多第17張牌,然後聲稱下一張絕對是他們挑出的那張牌。有時候他們甚至會跟你賭一杯酒之類的,因為他們很確定你會猜錯。

接下來你就往回翻,把已經翻開的第14張牌翻面,實踐了你誇口說出的話,如果你又老謀深算打了賭,就還賭贏了。但要提醒一下,要是自願者沒有把他們選中的牌告訴獨立的第三人或是寫在某處,他們很容易就會靠謊騙來逃避賭輸請客。

這類型的紙牌魔術已經夠好了,不過有一類稱為「任意牌、任意數字」的戲法,是紙牌魔術當中夢寐以求的戲法。這是指自願者所選出的牌可以移動到一副牌的指定位置(而不是淪落在中間)。稍加調整並多思考一下,「三疊紙牌魔術」也能做到這一點。

在我的版本中,我在把牌發成三疊的時候,會隨便問問自願者最喜歡哪個小於27的數字,而在魔術終了,他們的牌就出現在那個位置。

唯一的差別是有時你可以把指出的那疊牌放在最上面或最下面,而不是每次都放在中間。為了找出它在哪裡,就把疊在最上面稱為位置0,中間位置稱為1,最下面稱為2,然後只要把你想擺在自願者的牌上方的牌數轉換成三進位。

第一次重組三疊牌的位置時,根據1的數目把指出的牌放進位置0、1或2,第二次就依據3的數目,而第三次依據9的數目;因此,如果你想把七張牌放在自願者選出的牌的上方,7的三進位表示是021(它有零個9,兩個3,一個1),於是就按照這個順序(從1開始倒過來進行)把指出的那疊放在中間、最下面及最上面。在魔術終了,你從最上面數七張牌拿走,在第八個位置的下一張就是自願觀眾所選出的牌。

圖5
Photo Credit: 貓頭鷹出版