02-2. 隔空取牌

https://teachinglondoncomputing.org/resources/inspiring-unplugged-classroom-activities/the-invisible-palming-activity/

Computer Science activities with a sense of fun: Invisible Palming V1.0, 3 February 2014

Created by Paul Curzon and Peter McOwan, Queen Mary, University of London for Teaching London Computing: http://teachinglondoncomputing.org

本教材以創用CC 3.0 姓名標示-非商業性-相同方式分享釋出(creative commons 3.0 BY-NC-SA) https://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh_TW

用一個快速的、隱形的手法,將一張牌從一個牌堆中移動到另一個牌堆。

這個魔術除了有演算法的概念之外,還演示了一個電腦程式應該是什麼樣子的。它同時也可被用在探索人、機互動的過程、回饋的重要性、以及如何建立一個正確的心理模型。

在這個單元可以學習到:

  • 演算法
  • 運算思維
  • 人機互動

活動說明:

1. 我們需要一副普通的撲克牌(事先從52張牌隨意取走其中一張),以及一張小桌子。

2. 徵求7位自願者,觀眾可以往前靠近,就近觀察你的表演。

3. 請自願者將雙手手指輕放在桌面上,像在彈鋼琴一般。(此時每個人的雙手五指會自然形成8個空隙,每個空隙稱為一個SLOT

4. 告訴大家,今天要用到的咒語是「❤ 一定要幸福喔 ❤」,象徵等一下每次的操作都要讓撲克牌兩兩成對。

5. 放牌階段

從撲克牌的最上方拿起兩張牌,請學生念咒語後,放在第一個人的第一個SLOT中,請他用手指夾住這兩張牌。接下來每拿起兩張牌,就念一次咒語,放入一個SLOT,直到最後會剩下單獨一張牌,將它放在旁邊。

6. 取牌階段

拿起第一組牌,將兩張分開放在桌上,說這是新牌堆的基礎。接著依序拿起每個SLOT中的牌,輪流將兩張牌放在兩個牌堆上,直到所有的牌都分完為止。

7. 瞬移階段

拿起那張單獨的牌,請學生隨意指定要放在哪個牌堆的最上面。舉起你的手指,輕輕敲一敲牌堆的最上方,告訴大家,這張牌已經瞬間被轉移到哪一個牌堆的最上面了。(做點帶有戲劇性的表演)

8. 驗證階段:用牌堆的數量來驗證移動的效果。首先拿起被放了單獨那張牌的牌堆,一邊念咒語、一邊拿起兩張牌放在桌面上,等放完所有牌堆的牌之後,發現這個時候竟然沒有多一張牌。再拿起另一個牌堆,一邊念咒語、一邊拿起兩張牌放在桌面上,最後發現竟然多了一張單獨的牌。告訴大家,我證明了這張牌真的成功被我瞬間移動了!

運算思維:

這個魔術也是自我運轉(self-working)技巧的一種演示。所有的步驟都是事先設定好的,背後其實也沒有什麼高深的運作原理,完全是觀眾已經被你的手法搞混罷了。

一副只剩51張牌的撲克牌,扣除掉最後單獨留下的那1張,剩下的50張牌若分成兩個牌堆,則每一堆會有奇數25張牌。當你將單獨留下的牌放到其中一個牌堆上的時候,這個牌堆的數量就變成了偶數。所以當你先拿起放置單獨牌的牌堆,做兩個兩個一數的動作,最後當然剩下單張的牌;反之另一個牌堆本來就有奇數張牌,做完兩個兩個一數的動作,一定會留下單張牌沒有被分到。

其實你根本沒有做什麼!當觀眾被你的咒語及動作吸引了他們的注意力,就不會注意到奇、偶數的差別,他們只看到第二個牌堆遺留了單張撲克牌,還以為它是從另一個牌堆飛過來的,其實,它本來就在那裡啊。(向學生解釋原理時,為了節省時間,可以只使用15張牌當作示範之用)

這個魔術跟運算思維有什麼關係?我們提過,自我運轉的技巧跟電腦程式一樣,其實只是演算法的應用而已。所謂的演算法就是一套被設計好的指令,只要照著指令一步一步做,就會得到相同的結果。而所謂的結果,在魔術表演裡面指的是令人驚訝的效果,對於電腦程式來說就是預期該顯示或儲存的數據了。

程式必須使用一套電腦看得懂的語言來撰寫(所以稱之為程式語言progamming languages),一位程式設計師想當然必須擁有良好的運算思維技巧,或是演算法的發展概念。所謂演算法的發展概念指的則是要思考如何組合一系列的指令,來完成指定的事,而且每次執行這些指令時,得到的結果也必需一樣。在寫指令時,也同時必需考慮到精簡、與易讀性,就算不是程式設計師本人,也能看得懂、也能照著做。

其實魔術的技法裡面,也牽涉到很多心理層面的影響技巧。在這個魔術的表演過程裡面,我們試圖混淆了觀眾對於牌的數量的概念。因為我們總是重覆念誦「❤ 一定要幸福喔 ❤」這句咒語,他們就會以為除了最後遺留下的單張牌之外,其他的牌在任何狀態下也該是兩兩成雙,所以就不會注意到我們在分堆時,其實已經讓每個牌堆擁有奇數張牌。

魔術示範:(待拍)