2020年2月15日 星期六

「澳洲魔術師之夢」的操作流程

Paul CurzonPeter McOwan所著的"The Power of Computational Thinking"(中譯本:思考的演算,八旗文化)的第三章「魔術也是一種演算法?」中,談到了一個魔術,名叫「澳洲魔術師之夢」。書本裡對於這個魔術的操作方式,完全以文字敘述,一張圖解都沒有,閱讀上給讀者很大的挑戰。Paul Curzon教授在其Teaching London Computing的YouTube頻道上拍了三部影片講解此魔術,立意甚佳。可惜,由於拍攝畫質不理想,所以我認為無助於學習此魔術的操作。

中文世界中,關於這個魔術的資料,應該是零。就算有,肯定也沒有理論上的探討。我在讀該書那一段時,前前後後看了好幾遍,還是不得要領。 我叫我的學生廖育嫆一起讀這本書,她也讀不懂。基於指導的責任,還有自己的好奇心,花了幾個小時,總算弄懂這個魔術的操作方法了。(撲克牌滑不溜丟的,一直掉到地上,煩死了)

定義:撲克牌的「牌面」意指有數字的那一面。


第1步:挑選出紅心8紅心A,先放到旁邊去。(書本預設紅心8是我們最後的目標,紅心A則是用來定位的。兩張牌都可以換成其他你想要的牌。)


第2步:將剩下的50張牌洗牌。(撲克牌扣除2張鬼牌後,共有52張。如今先取走紅心8與紅心A,所以剩下50張。)

第3步:將那疊洗好的牌,牌面(有數字的那面)朝下放。


第4步:由上而下,在適當位置插入紅心8以及紅心A(牌面皆朝下),使得紅心8在整疊牌中,由上而下數來是第16張,而紅心A是第32張。操作方式如下圖所示:


第5步:把整副牌整個翻過來,使牌面朝上。先將整疊牌放置在前方桌面的左側,然後用手將牌向右推,將牌鋪平於桌面,使得本來向上牌面的第1張推到桌面的最右側,而最底下的那一張則停在左側原處不動。

鋪好後,此時由左而右數來,第16張必須是紅心8,第32張必須是紅心A。

第6步:將兩隻手懸空在第16張與第32張上方,示意志願觀眾在你兩隻手中間的牌(第17張至第31張之間的牌)當中任意挑選一張。

第7步:整副牌中,從志願觀眾所挑選的牌開始,將含有紅心A的那一部份的牌(以你的視角來說,就是那張被挑選牌右方所有的牌)全部收起,然後放在旁邊。

第8步:將剩下的牌由右而左疊好,使得最右邊的牌會在整疊的最上方。

第9步:拿起疊好的牌,整疊翻轉,使得牌面朝下。然後開始從最上面那一張開始,一張一張地把牌分成兩堆,交替地覆蓋牌面(down)與牌面朝上(under)。也就是說,最上面那一張拿起後要先放在一邊,而且是牌面朝下。然後下一張則是拿起後放在另一邊,而且要牌面朝上。然後再下一張是拿起後放在牌面朝下的那一邊,疊上去。...如此不斷下去,直到手上的牌完全分為兩堆。

第10步:把牌面朝下的那一堆牌移到別處,拿起牌面朝上的那一堆牌,像第9步一樣,整疊翻轉後,讓牌面朝下,然後開始分堆,down與under。不斷續行這樣的動作,最後會剩下一張牌,必然是紅心8







2020年2月5日 星期三

用95%酒精調配75%酒精

==問題==

今有x毫升的95%酒精溶液,試問要加入多少水,才能調出75%的酒精溶液?

==解答==

先講結論:「4杯95%酒精溶液,再加上1杯水,就得到(差不多)75%酒精溶液」。

以下是計算過程。

x毫升的95%酒精溶液中,有$x \cdot 95\% = 0.95x$毫升的(純)酒精,所以有$x - 0.95x = 0.05x$毫升的水。(不過本來溶液裡有多少水,一點都不重要,這裡只是順帶提一下。)

假設要加入y毫升的水。

所以在新的溶液中,酒精依然有$0.95x$毫升,然後溶液總容積為$x+y$毫升。讓我們回憶濃度的定義為:
$$\text{體積百分濃度} = \frac{(純)酒精體積}{溶液體積} \times 100\%.$$ 按題目要求,此時應有
$$\frac{0.95x}{x+y} \times 100\% = 75\%,$$ 所以
$$\frac{0.95x}{x+y} = \frac{3}{4}.$$ 交叉相乘後,得
\begin{eqnarray*} 0.95x \cdot 4 &=& (x+y) \cdot 3, \\ 3.8x &=& 3x + 3y, \\ 0.8x &=& 3y, \\ 3y &=& 0.8x, \\ y &=& \frac{0.8x}{3} \approx 0.267x. \end{eqnarray*} 此時
$$x: y \approx x: 0.267x \approx 1: 0.25 = 4: 1.$$ 所以調製75%酒精差不多的配法為:「4杯95%酒精溶液,再加上1杯水,就得到(差不多)75%酒精溶液」。