加加減減的奧祕——從數學到魔術的思考(二)
愛學習,勤思考;學數學,玩魔術
在上一篇文章中(參見公眾號歷史訊息或選單欄,傳送門:加加減減的奧祕——從數學到魔術的思考(一)),我們詳細介紹了人類計數的發展史的開端:整數的出現和加減運算的誕生,他們都是生產力發展下,人類認知能力相應提高後由需求產生的抽象能力,是人類智力和思想進步的標誌之一。這其中,同數的加法和減法互為逆運算的性質正是由這個運算誕生以來的天然性質,而她也可以用來設計巧妙的魔術了。其一般模式是:給定一個開頭,在執行完兩次操作以後會回到這個原本就知道的setting起點,以做到預測或者巧合類魔術效果,即:
a + b - b = a
在上一期中分享的兩個視訊就是依據這一原理設計的。我們這一期會詳細講解設計過程,尤其是對數學原理的充分利用以及巧妙的魔術改造。
數學到魔術的模型
注意看前文的那個公式,在魔術裡,a往往是預先準備好的setting,b是觀眾的隨機選擇,而結果的a則是魔術效果,可以是預測,也可以使4Ace出現這樣的美麗展示。變一個魔術,在計算機看來,就是執行了這些加減操作,得到預先設定好的結果,一點也不奇怪。
到此,用這個原理變魔術還剩最後一個問題:加減法這種運算是怎麼對應到撲克牌的操作上的,答案也很清楚,撲克手法中有兩個最基本的操作可以和加減運算相對應:
1. Dealing:發牌,這個操作如《reverse原理的魔幻藝術》)所言,是一個可逆操作,相當於頭部reverse,但也可以理解為一個counting過程,即數有多少張牌,和數世界上任何一個集合裡的元素個數在模型意義上完全相同,而把數好的兩疊牌合在一起的張數和把兩筐棗子混在一起的總數都符合“同質化元素集合的合併”這一操作,即可用加法來建模其大小變化結果,反之則是對應減法的拆分過程,即發剩下牌的張數,對應著減法運算;
2. Cut:切牌,即對序列進行整塊連續區域的移動,增減,替換等等操作,同樣可以達到符合加減法定義的“同質化元素集合的合併和拆分”這一抽象過程,這個有點像把兩筐棗子直接倒在一起或者一次性倒出去一筐棗子,而沒有一個個數了,但是數不數卻絲毫不影響性質的成立;
當然可能還有一些變種操作也符合加減的含義,大家可以拿起撲克牌來比劃想象一下,看有沒有別的發現,但以上兩個應該囊括了主流了。
這兩個手法沒有任何瑕疵,甚至無需練習,因為所見即所得,觀眾看到的和實際發生的內容一模一樣,視線上的錯誤引導也是不需要的,不像變個鴿子出來一樣需要一點所謂障眼法,需要的是畫面和故事的引導和想象,去把無聊的數學操作過程包裝成觀眾願意聽的一個故事,願意看的一場電影。
好,接下來,只需要去在魔術中用故事和畫面去編排這些枯燥的操作,構建上面的恆等式,魔術便設計完成了。下面是幾個表演視訊和解析,本篇文章著重分析Dealing操作的應用,下一篇也是本系列最後一篇會和大家分享Cut操作的應用。
魔術部分
第一個魔術是一類魔術4Ace presentation的我自己的修繕版本,這個效果一般快速地可以由setting加簡單手法直接變出(參看劉謙《近近景近景》的相關內容)複雜一點的手法也可以看起來更炫和神祕一些,比如大衛的經典4Ace(前半部分是presentation,後面是Assembly了),而我這個版本用的卻是加減法互為逆運算這一數學原理,觀眾可直接參與和互動,也算別具一格吧。
視訊1 4Ace Presentation
按照原魔術原理,觀眾拿走的牌數量是b,我拿走的張數是精確數過的a,(觀眾卻並沒注意這件事),再數牌則相當於拿走了b,這樣即完成了a + b - b = a的全部操作,且注意被預測那一張是原第(a + 1)張,也是減去的那個集合的最後一張,而其餘各關聯位置的撲克牌也在掌控之中,居然把一張牌的預測原理通過魔術師的想象擴充套件成了4Ace加4Kings的8倍效果的畫面,真是不可思議!就像一個簡單的Elmsley count的組合就能夠製造出出現,消失,翻轉等各種效果,魔術師帶著鐐銬跳舞,總會有一種別緻的美感。
第二個表演則是同一個原理的預測效果的展現版本,印象中在《魔星高照》名人變魔術單元中劉謙曾經表演過類似的效果。這個展現方式沒有那麼多美麗畫面但是勝在心理上的不可能和震撼的感受。原理相同,不再贅述,且看編排中如何儘量讓每一個步驟的臺詞那麼合理,如何讓普通的結局看起來不可思議。
視訊2 Exact Composed prediction
“因為心裡想的數字可能會受到我的干擾,所以我們採用一種更安全的方式,請你用手隨便拿起一疊牌,大概1 / 3以內。”這一說辭使得觀眾心甘情願的幫我完成了+ b操作,而且還增強了他的信任,魔術裡太需要這種一舉兩得的設計了。
“但是你可能懷疑我數了你大概拿了多少張以後,是不是趁你不注意的時候偷換到了它,這樣好了,從表演一開始到現在這邊一直放著……”,又是一舉兩得的臺詞,不僅把觀眾可能在思考為什麼的注意裡牽扯到是不是偷換了預測牌上面,而且,馬上用一個更強大的效果打消了這個疑惑,自圓其說,自然把觀眾的解密思路帶向了一個死衚衕,嗯嗯,還是來欣賞奇蹟的美吧!
在預言展示階段,常用的物品上常常有意想不到可以利用的東西,比如牌盒上的紅心10,我想這上面的預言要比你拿出任何一個包裝完好但是奇奇怪怪的信封然後很可疑地撕開,最後裡面好幾層有張紙條的方式,要好得多吧!越是普通,越是震撼!
另外有一個細節,其實count過程太繁瑣太多(比如這裡其實需要數20張牌)往往觀眾會厭煩甚至猜出其中奧祕,所以這裡為了實現reverse,並沒有count,而是採用更加粗暴的turn over操作,神奇的是它竟然可以完成和reverse完全等價的效果,究竟為何這麼神奇,以及這種等價性又可以設計出怎樣的魔術?我們後面再寫文章專門闡述,這部分思考還真正地幫助我在研究生物資訊學的時候理解了人類基因組所謂的鹼基互補配對和雙螺旋結構,體驗科學研究之妙~
更多精彩內容歡迎掃描下方二維碼關注我們,我們下期再見!
作者簡介:magic2728,現就職於騰訊。自幼以數學和魔術為最大愛好,從參加建模比賽到培訓到一線網際網路從業者,其建模經驗遍歷金融,生物,網際網路;魔術表演從學校走向比賽和商演,又迴歸撲克牌魔術理論的研究。他通過建模來思考,參與和改造這個世界,也希望能同步把這些精彩分享給感興趣的朋友們。
————
微信公眾號“演算法數學之美”,由演算法與數學之美團隊打造的另一個公眾號,歡迎大家掃碼關注!
更多精彩:
演算法數學之美微信公眾號歡迎賜稿
稿件涉及數學、物理、演算法、計算機、程式設計等相關領域,經採用我們將奉上稿酬。
投稿郵箱:math_alg@163.com
相關文章
- 加加減減的奧祕——從數學到魔術的思考(三)
- 加加減減的奧祕——從數學到魔術的思考(一)
- 學習的奧祕
- 數學-錯位相減法
- 遊戲設計師可以從魔術中學到什麼?遊戲設計師
- 更相減損術的應用
- 排序後扣減每行的數量排序
- 微軟讓訓練萬億引數AI模型的GPU需求從4000個減少到800個微軟AI模型GPU
- 美團的奧祕:與王興聊技術的力量
- 高效jQuery的奧祕jQuery
- 語言的奧祕
- "減時限、減材料、減跑動",浪潮軟體助力衡陽政府數字化轉型
- ACM 分數加減法ACM
- 機器之心GitHub專案:從迴圈到卷積,探索序列建模的奧祕Github卷積
- 超大整數的加減乘除計算方法
- Trick:處理加減等差數列的技巧
- 用C#實現二進位制的減法(包括二進位制小數)C#
- 在linux中減小和增大LV的過程與思考Linux
- 資產減值的操作
- 如何讓伺服器從30臺縮減到2臺的:從Ruby遷移到Go語言伺服器Go
- java 日期加減天數、月數、年數的計算方式Java
- JavaScript加減乘數運算JavaScript
- 33:計算分數加減表示式的值
- 利用索引提示減少分頁的巢狀層數索引巢狀
- shell中如何處理兩個數的減法
- 三個數字的加減乘除模運算
- 浮點數的加減乘除運算細節
- 從今天開始,學習Webpack,減少對腳手架的依賴(下)Web
- 從今天開始,學習Webpack,減少對腳手架的依賴(上)Web
- 從 1 秒到 10 毫秒!在 APISIX 中減少 Prometheus 請求阻塞APIPrometheus
- 深入理解JVM(二)——揭開HotSpot物件建立的奧祕JVMHotSpot物件
- 【萬字箴言】技術焦慮的減法與解法箴言
- 從技術到產品,蘋果Siri深度學習語音合成技術揭祕蘋果深度學習
- JavaScript中任意兩個數加減的解決方案JavaScript
- 加減密和數字簽名
- 程式設計師數學之數學魔術人人皆會變程式設計師
- 快速冪演算法(二分思想減少連乘次數)演算法
- N位二進位制數加減法運算圖靈機圖靈