你有沒有看過這樣一個撲克牌魔術(shù):魔術(shù)師在五六個人好奇的注視下,,拿來一疊撲克牌,說:“首先大家檢查一下這疊牌是不是不同的花色和點(diǎn)數(shù),?!比缓髮σ晃挥^眾說:“您可以從這疊牌的上方拿任意數(shù)量的牌放到這疊牌的下方(專業(yè)一點(diǎn)可以稱作切一下牌)?!钡谝晃挥^眾照做之后,,把這疊牌遞給旁邊的人,旁邊人同樣切一下牌之后,再遞給下一個人,,輪到最后一個人切完牌的時(shí)候,,這副牌的順序已經(jīng)被完全打亂了。
接下來魔術(shù)師會讓最后一個人拿走此時(shí)這疊牌最上面的一張,,再把這疊牌給旁邊的人,,同樣拿走最上面的一張,最后每個人手中都有一張牌,。然后魔術(shù)師會說:“我看不到你們?nèi)魏我粋€人的牌,,但現(xiàn)在用意念已經(jīng)知道你們每個人手中的牌是什么了?!焙芏嗳诵睦镆欢〞耄哼@也太神奇了吧,?魔術(shù)師又說:“首先請手中是黑色牌的童鞋站起來?!本o接著他就開始一一說出每個人手中的牌是什么:“你的是黑桃5,,你的是梅花8……對于剩下手中是紅色牌的童鞋,你的是紅桃3,,你的是方片……”最后把每個人的牌翻開一看,全部命中,,無一錯誤,。
魔術(shù)揭秘
這是一個很經(jīng)典的魔術(shù),不僅可以騙過醉醺醺的酒鬼,,就連魔術(shù)師俱樂部里的專業(yè)魔術(shù)師,、美國數(shù)學(xué)學(xué)會晚宴上的數(shù)學(xué)家們都對這個魔術(shù)毫無思緒,猜不出其中的原理,。
表演的關(guān)鍵點(diǎn)在魔術(shù)師號稱他已經(jīng)知道每個人手中的牌是什么的時(shí)候,。其實(shí)他對每個人手中的牌一無所知,在“首先請手中是黑色牌的童鞋站起來”之后他才知道了所有人手中的牌,,他利用各位觀眾手中紅牌,、黑牌的排列順序作為線索,推斷出大家手中是什么牌,。
具體來說,,表演這個魔術(shù)需要兩件道具:一是事先按順序排列好的一疊牌,可以從一副撲克牌中取出數(shù)字1到8共32張,,然后把它們按照下面的順序排列(背面向上,,由上到下)
梅花8,梅花A,梅花2,梅花4,黑桃A,方片2,梅花5,黑桃3,方片6,黑桃4,紅桃A,方片3,梅花7,黑桃7,紅桃7,紅桃6,紅桃4,紅桃8,方片A,梅花3,梅花6,黑桃5,紅桃3,方片7,黑桃6,紅桃5,紅桃2,方片5,黑桃2,方片4,黑桃8,方片8
這樣排列的巧妙之處在于:即使被切過牌,也可以保證任意抽出五張連續(xù)的牌,,其中黑色和紅色的排列順序一定是唯一的(如果黑色牌是0,,紅色牌是1,這些長度為5的二進(jìn)制序列一定是互不相同的),。
另外一件道具是一張表格,,可以把它藏在手心里,,也可以把它藏在一本書里,當(dāng)然還可以把它死記硬背下來,。對于以上的撲克牌排列順序,,對應(yīng)的表格是這樣的:
假如在魔術(shù)中,你發(fā)現(xiàn)按照拿牌的先后順序,,第二位和第四位觀眾站起來了,,則說明各觀眾手中的牌分別是紅黑紅黑紅,二進(jìn)制形式就是10101,,按照表格一查,,立刻就可以“感知到”這五個人手中的牌分別是方片5、黑桃2,、方片4,、黑桃8、方片8,。
這一神奇魔術(shù)背后的數(shù)學(xué)原理是二進(jìn)制的De Bruijn 序列,,從這樣的序列中任意取出相鄰n個數(shù)(在我們的魔術(shù)中n=5),它們的二進(jìn)制排列一定不相同,。下面我們把最開始的那疊牌寫成二進(jìn)制形式(黑色0,,紅色1),大家可以驗(yàn)證一下是否如此,。:
0,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1
對于同樣的32張牌,,De Bruijn 序列自然不是唯一的,可以有很多種排列方法,,不同的排列方法也對應(yīng)著不同的“解密表格”,。De Bruijn 序列長度也可以更長,隨之變大的是每次需要取出相鄰牌的個數(shù)(n),。對于不同數(shù)量的觀眾,,我們需要準(zhǔn)備不同數(shù)量的牌。5個觀眾比較適中,,如果給一個班級所有人一起表演,,盡管效果無比震撼,但是撲克牌估計(jì)要用麻袋來裝了,。
不只是魔術(shù)
De Bruijn 序列的奇妙不僅體現(xiàn)在魔術(shù)上,。我們還可以使用它為機(jī)器人做路標(biāo)定位:將兩種不同顏色的小方塊排成一條長線擺在機(jī)器人行進(jìn)的路上,機(jī)器人只要識別出自己前后的幾個方塊是什么顏色,,既不需要GPS,,也不需要高精度探測儀,就可以知道自己走了多少米。
在一列很長的De Bruijn 序列中,,中間任意取出n個數(shù)字(例如下面序列中的10011),,然后向旁邊移動一個位置,取出相鄰的n個數(shù)字(例如下面序列中的00111),,它們一定是不相同的,,但又有(n-1)個數(shù)字是重疊的(0011)。
0,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1
0,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1
研究人員利用De Bruijn 序列設(shè)計(jì)了每次可以產(chǎn)生一個用于加密的不同隨機(jī)數(shù)字的簡單電子元件“反饋移位寄存器”,,上一個隨機(jī)數(shù)字和下一個隨機(jī)數(shù)字之間只改變一個數(shù)位和移位一下就可以,,電路構(gòu)造非常簡單。
智利的研究人員還曾做過研究,,他們設(shè)想這個紙牌魔術(shù)或許可以和電腦里的數(shù)據(jù)壓縮(例如WINRAR,、ZIP、JPEG圖片壓縮,、MPEG視頻壓縮等)扯上關(guān)系,。
也許你僅僅為這個魔術(shù)的表演效果感到很神奇,但絕對想不到這個魔術(shù)背后的原理還可以跨界到如此廣闊的領(lǐng)域吧,。數(shù)學(xué)與魔術(shù)結(jié)合,,就是會產(chǎn)生如此奇妙的反應(yīng)。