加加減減的奧祕——從數學到魔術的思考(三)
愛學習,勤思考;學數學,玩魔術
在前面兩期的系列文章中,(見公眾號歷史訊息或選單)傳送門:
我們已經從數學原理的發現到撲克牌魔術的對映過程分別做了詳細的分析。相信大家對這個加減互為逆運算的原理以及設計成魔術的基本方案都略有了解。上一篇中我們也特意提到了撲克魔術中的兩個基本手法:Dealing和Cut,且主要就Dealing手法進行了數學到魔術的創作,其中不少創意大家應該還覺得有所收穫吧!那麼,今天最後一篇,我們來討論下Cut手法下,我們如何利用好這個加減逆運算的原理來設計精品。
我認為,Cut方式的執行會比Dealing來得乾淨,一方面執行迅速,觀眾來不及思考;另一方面,Cut也更符合人拿牌的基本習慣,沒有人是一上來就要數張數的,Cut天然更加自然。所以用好了,會得到更好的效果。
這個魔術的基本版本,來自倫敦大學瑪麗女王學院的公開課,可以稱作是base版本吧。說實話哈,那個系列的數學原理都還不錯,但魔術演得實在是……嗯嗯,也許他們還有所保留沒有展示實力吧,但是同時深入這兩個領域都有點建樹沒點天賦和特殊的成長體驗還真辦不到,這也是MatheMagician存在的理由啦~請看視訊:
視訊1 The Clever Joker
簡單覆盤一下魔術操作中的幾個步驟對應的實際撲克牌變化過程,a, b為兩張Joker的起始位置編號,x0, y0為兩次分別選擇撲克牌的位置編號,整付牌的張數為d,起始撲克牌編號為1: d:
1. 兩次切牌看底牌,相當於整疊撲克牌上的兩個斷點:
[1, a - 1], a, [a + 1, x0 - 1], x0
[x0 + 1, b - 1], b, [b + 1, y0 - 1], y0
[y0 + 1, d];
2. 放回時候上面兩疊換位置:
[x0 + 1, b - 1], b, [b + 1, y0 - 1], y0
[1, a - 1], a, [a + 1, x0 - 1], x0
[y0 + 1, d];
3. 合併起來以後,找到新的編號,而不是位置為x0, y0的兩張joker,並以此劃分牌疊:
[x0 + 1, b - 1]
b
[b + 1, y0 - 1], y0, [1, a - 1]
a
[a + 1, x0 - 1], x0, [y0 + 1, d]
4. 佯裝找出並拿走兩張joker,此時完成底部兩疊置換:
[x0 + 1, b - 1]
[a + 1, x0 - 1], x0, [y0 + 1, d]
[b + 1, y0 - 1], y0, [1, a - 1]
因此,初始時候定位於x0, y0的兩張牌,即編號為之的他們的最終位置公示為:
x = [(b - 1) - (x0 + 1) + 1] + [(x0 - 1) - (a + 1) + 1] + 1 = b - a - 1
y = (d + 1 - 2) - {[(a - 1) - 1 + 1] + 1} = d - a - 1
(好久沒有寫過這麼多層括號了,寫著真舒服)
x, y 為最後兩張選牌的最終位置,可以看到與x,y原取值位置x0, y0沒有任何關係,其恰巧作為加減逆運算抵消掉了,而這些操作都肉眼可見但無人關心,關鍵是有一個吸引人的故事去編排。原始流程取a = 10, b = 28, d = 54, 則x = 17, y = 43。這些取值主要是為了保證拿一半,1 / 3 這些操作不會越界,多一點少一點並無妨。看起來這套引數是比較安全的但不是唯一的。
這裡注意一點,撲克牌的位置索引是隨著切牌不斷變化的,而其上的值是印刷在牌面上永遠不變的,這是這些推導背後的本質規律。
看完這個魔術的效果和解析以後,感覺這確實是一個對於加減逆運算操作使用切牌方式實現的一個絕佳例子,動作足夠隱蔽,絲毫沒有給你去計算的可能。但是,從整體效果來看,少了點跌宕起伏和戲劇衝突,joker在耳邊告訴魔術師位置這一設計有些牽強,明顯可以推匯出可能是固定位置,展示魔術的方式還是離祕密太近,哪怕真正的推理很難,也失去意義了。另外,觀察公式發現,第一張終止位置x只和b - a有關,這個的物理意義其實就是夾在兩張joker之間的牌的張數加1,而y也只和a有關,因此,利用這一點,我們可以只變這個魔術的一部分,把兩張牌的位置預測變成簡單的一張(事實證明,這並不會降低神奇度),但是給予了表演更多的自由度(x只需要控制a和b的差,y只需要控制b)。基於這樣的想法,我改編了這一流程,見下面的視訊,可以比較一下,基於同樣的數學原理,到底好在哪裡,或者哪裡還不足,歡迎留言討論。
視訊2 The Clever Assistant
這個改進主要的魔術想法在於拉開效果與祕密的距離(Timing是拉開的方式之一,後面會講,而這裡是換了更豐富的展現形式做到的),把給定的位置資訊用一連串緊張遞進的過程來表現,使得祕密遠在表演的內容之外,並且故事足夠精彩的時候,觀眾也無暇去猜祕密了。具體執行的方案利用了關於Anti Faro shuffle(反完美洗牌)的一些二進位制相關的性質。這兩個思想在很多魔術設計中都有應用,後面我們還會有機會提到他們。
好了,本篇是《加加減減的奧祕——從數學到魔術的思考》的最後一篇,數學實在是太深邃,魔術實在是太奇妙,而他們關聯出來的思想又是千絲萬縷。我希望每個系列文章中都能從一個核心思想出發去觸及知識的各個可能的角落,對大家的數學,魔術,以及思維方式的改進與提升有所裨益,讓你愛上學習,愛上思考,這裡是MatheMagician。
更多精彩內容歡迎掃描下方二維碼關注我們,我們下期再見!
magic2728,現就職於騰訊。自幼以數學和魔術為最大愛好,從參加建模比賽到培訓到一線網際網路從業者,其建模經驗遍歷金融,生物,網際網路;魔術表演從學校走向比賽和商演,又迴歸撲克牌魔術理論的研究。他通過建模來思考,參與和改造這個世界,也希望能同步把這些精彩分享給感興趣的朋友們。
————
微信公眾號“演算法數學之美”,由演算法與數學之美團隊打造的另一個公眾號,歡迎大家掃碼關注!
更多精彩:
演算法數學之美微信公眾號歡迎賜稿
稿件涉及數學、物理、演算法、計算機、程式設計等相關領域,經採用我們將奉上稿酬。
投稿郵箱:math_alg@163.com
相關文章
- 加加減減的奧祕——從數學到魔術的思考(二)
- 加加減減的奧祕——從數學到魔術的思考(一)
- 數學-錯位相減法
- 三個數字的加減乘除模運算
- 更相減損術的應用
- 排序後扣減每行的數量排序
- 遊戲設計師可以從魔術中學到什麼?遊戲設計師
- 更相減損術求解最大公約數
- 微軟讓訓練萬億引數AI模型的GPU需求從4000個減少到800個微軟AI模型GPU
- 機器之心GitHub專案:從迴圈到卷積,探索序列建模的奧祕Github卷積
- DMAIC:科學助力你的減肥之路!AI
- 超大整數的加減乘除計算方法
- Trick:處理加減等差數列的技巧
- "減時限、減材料、減跑動",浪潮軟體助力衡陽政府數字化轉型
- Withings:2020年全球人們走路的次數減少 但體重卻減輕了
- 浮點數加減法
- tensorflow學習率指數衰減ExponentialDecay的引數介紹與使用方法
- 從今天開始,學習Webpack,減少對腳手架的依賴(下)Web
- 從今天開始,學習Webpack,減少對腳手架的依賴(上)Web
- 精益生產的奧祕 -- 優思學院
- 浮點數的加減乘除運算細節
- 從 1 秒到 10 毫秒!在 APISIX 中減少 Prometheus 請求阻塞APIPrometheus
- JavaScript加減乘數運算JavaScript
- 三個月縮減人力成本超50%,看製藥巨頭阿斯利康的智慧化轉型祕訣
- 挪威奧斯陸大學:每日做家務可幫助減少早死風險
- JavaScript中任意兩個數加減的解決方案JavaScript
- Android App秒開的奧祕AndroidAPP
- MyBatis和Spring整合的奧祕MyBatisSpring
- Vue $mount的掛載入口的奧祕Vue
- 輾轉相除法與更相減損術(求最大公約數)
- 減少Android APK的大小99.99%AndroidAPK
- CLIPPO:純影像的 CLIP,引數減半且更強大!
- 減少Spring Boot的JVM記憶體佔用的Docker三種配置Spring BootJVM記憶體Docker
- 樹人:從《魔戒》到《魔獸世界》
- 從文學到遊戲 聊聊反烏托邦作品帶來的思考遊戲
- 【技術科普】動輒幾十個G,遊戲包體能不能減減肥?遊戲
- C語言 用更相減損術求最大公約數,最小公倍數C語言
- JAMA:如何防癌?減肥可以讓癌症風險減少30%、死亡率下降近一半!手術減肥效果一樣!