加加減減的奧祕——從數學到魔術的思考(一)

演算法與數學之美發表於2018-12-16

在前面的《reverse原理的魔幻藝術》)(可檢視:Reverse原理背後的數學和魔幻藝術)一文中,我們提到了撲克牌的基礎手法dealing,等價於取序列的頭部進行reverse這一對稱函式關係操作,進而有其二次操作以後恢復的良好性質以得到把預先在給定位置的setting變成預言或者優美畫面的魔術效果。關於這個原理,這裡還有兩點擴充思考:

 

1. 做預測類效果的基本思路之一是:找到變化中的不變數。無論是數學建模還是魔術都是如此,比如以隨機過程為代表的時序預測和各種機器學習中的分類,無不是在某泛函空間內確定一族不隨時間或新來樣本而變化的引數,比如狀態轉移矩陣,泊松強度,各種迴歸係數,權重等,都是面對變化世界的穩定性之,即不變數;而魔術中,也有一系列像double reverse操作一樣,看起來完全混亂不堪,但是保持著某人們容易忽視的確定性,這些寶貴的性質正為魔術師所用,來創作奇蹟。當然,如前4A聚首的演法,其實是把這種確定性演繹成巧合了,魔術師不是killer,而是looker。當然魔術中的預測,有時並不能找到完美的不變數,如何在ending處彌補這些不確定,就靠魔術師們的藝術想象力,去尋找那些神奇的數學原理並和藝術展示結合的美妙了,這個部分我們以後有機會再詳細說;

 

2. Dealing手法,除了等價於reverse操作以外,還可以看作在笨拙地做加減運算,源於加減法本身的原理,這一操作天然也代表這一層含義,而加減操作本身,是互為逆運算的兩個操作(符),這和reverse操作具備的正反函式相等性質有什麼區別和聯絡,又怎麼來利用這一性質創作魔術呢?

 

這篇文章我們就來聊聊加減運算的一些性質以及在魔術中的應用。

 


 數學部分 

 

從計數說起


受惠於生產力的發展,人類有機會因為需要而提升抽象理解世界的水平的能力,這常常伴隨著一些數學成果的出現,甚至是以他們為標誌的。計數的出現和發展就從一個側面很好地體現了這一過程:


1:數量的擴充和發展(箭頭左側為累積數集,右側為新發明的數集)

640?wx_fmt=png


當人類生產力在每天可能打到顆棗子和捕到野豬,也有可能沒有的情況下,就有了區分有無的需求可能是某天一個部落元首發現“今天沒有棗子吃而昨天吃過”,於是是布林數集概念率先誕生了,這可能是人類歷史上第一次進行“數學建模”活動吧!即對事物有無概念的度量,無論是棗子還是豬,都用統一的符號表達抽象的有或無兩種狀態。


圖2 一頭野豬

640?wx_fmt=jpeg


圖3 一顆棗子

640?wx_fmt=jpeg


因為從沒見過哪一天抓到過長得差不多的豬或者棗子而從沒有計數的必要。直到有一天,抓了好幾頭長得都差不多應該都是野豬的東西,或者打了一籮筐大大小小但味道差不多的棗子的時候,要管理起來,集合誕生了,要知道有多少豬,對集合進行大小度量,於是有了對其進行計數的需要,正整數的就正式光榮地發明使用了。


圖4 一堆野豬

640?wx_fmt=jpeg


圖5 一堆棗子

640?wx_fmt=jpeg


這正是伴隨著人類已經能夠生產,發現和辨別一些相同或不同的物件這種認知和生產能力本身的提高而根據需要抽象出來的數學工具。數學的文明就是這樣一直伴隨著人類生產力的發展而不斷進步著,滿足著新的生產需求,看起來遠古時代的這些事和現在發生的大資料時代資料爆炸推動數學和計算的發展是一樣的吧。

 

直到有一天,部落首領把昨天剩下的棗子和今天剛打的混在一起成了一籮筐,這時候,問題來了,這一籮筐一共多少棗子,難道要再數一遍?前面兩筐的數量能否直接合起來得到?


圖6 兩堆棗子

640?wx_fmt=jpeg

(實在沒找到兩群野豬的圖片了,只放棗子的了哈)


此時,加法,人類歷史上發明的第一種運算,在這一天,劃時代地誕生了。

 

(不曉得有沒有考古學家能夠考證這一天具體發生在何時和地球的哪裡,很想去虔誠地拜訪一下這數學文明的發源地。)

 

計數是對一個有著相同性質元素組成的集合大小的度量的過程,而兩個同樣性質互不相交集合合併時候(都是某全集的子集),新集合的大小的結果,我們稱為前面兩個集合大小度量數的和。即兩個籮筐都是一樣但都獨一無二的棗子倒在一起的時候,形成的新的一筐棗子有多少的問題。

 

這裡的建模和抽象過程其實已經在大量使用我們沿用至今的建模思想了,集合的原生概念,簡化假設(大大小小,各式各樣的都是棗子,不會合並,丟失,繁殖等等),定義假設(每個棗子都不一樣且都有棗子屬性),最後倒在一起形成一筐新的棗子或和這個等價的物理過程,最終在這些假設下,被定義成加法,即互異的同質化元素集合的合併操作後,新集合大小的理論結果。

 

這樣,無論是幾籮筐棗子倒在一起,還是把大家捕獲的野豬趕在一起,都可用同一套運算來計算這一過程的後果:即新的一籮筐棗子有幾顆,一大堆豬有幾隻了。

 

注意,能用正整數加法的前提是:互異的同質化元素集合的合併操作;結果是:產生新集合的大小。只要物理過程符合或者被假設符合這一性質,比如倒在一起差不多的棗子,趕到一塊差不多的豬,其結論就可以用統一的抽象過程來代替描述,進而迅速計算出結果。

 

於是,這樣的過程天然具有一些性質,看起來很小的時候覺得,這不顯然麼,學著有啥用。嗯,確實顯然,不過這背後揭示的是大自然的基本規律,聰明的人類總結出了這兩條加法的性質:


a + b = b + a

交換律:把兩筐棗子倒在一起,先後不影響最終棗子多少;


(a + b) + c = a + (b + c)

結合律:三筐棗子倒在一起,先合併前兩個還是後兩個,對最後結果也沒有影響;

 

也正因為求和是一個集合的屬性,集合的元素本身是無序的,可以隨意打亂的,這一性質便又可以設計以和為中心的數學魔術了,常常伴隨Girbreath原理使用,後面會有專門文章提到。

 

回到首長數棗子的故事,想象有一天,部下打來了一筐長得和棗子完全不一樣的蘋果,把棗子和蘋果倒在一起,發現得到的結果不全是棗子了,也不知道一共有多少個了,於是首長就要瘋掉了,因為他們不是一種東西,不是互異的同質化元素集合,做不了加法。

 

好了,請同學們自行腦補第二天首長同學吃了撈出來一小筐棗子以後計算還剩下多少棗子的情形,以及A首長找B首長借棗子吃記賬的情形哈,減法和負數就差不多由此場景需求而誕生了。

 

~穿越回當代,我們來進一步討論下抽象出來的加減運算的一些由其建模本身的假設要求而帶來的一些必然的性質。

 

估計應該是小學時候,數學老師就常說:加法和減法互為逆運算。當時乍一聽,沒什麼難理解的嘛,a + b = c,於是a = c - b,這不正好逆過來了麼,和腦海裡對於感性的“逆”的意思也差不多嘛,於是大部分時候也就不求甚解了。但是,要想嚴謹定義這裡的加減互為逆運算,可能還要費點功夫想想才行。

 

真正的嚴謹表達應該是:

 

對於某一實數b構造的加法函式f1(x) = x + b和減法函式f2(x) = x - b,他們互為反函式,即f2(f1(x)) = x,其影象在座標軸上沿著y = x對稱。

 

換句話說,分別由(被加數,和)和(被減數,差)組成的兩個二元關係集合在加數 減數的條件下互為逆關係。

 

這裡最開始說的逆運算,其實本質上就是反函式,而且是把加b(加數)這一操作看成對x(被加數)執行的,結果為c,反之毅然。所以你看,我們平常理解的加法是有兩個運算元,且因為交換率的原因還總認為這兩個運算元無甚差別,f(a, b) = f(b, a),減法則是f(a, b) = - f(b, a)。然而這樣兩個函式連定義域值域都不能倒過來互相對應,那有何談什麼互為反函式,逆運算呢。

 

數學上的一些概念啊,定義啊,都是很嚴謹,很美的,千萬不要想當然。我再舉個例子,我們初中學的“一元二次方程地兩個根具有對稱性”,誰能清楚的解釋這裡的對稱具體指的是什麼嗎?可不是2±sqrt(2)這個形式這麼簡單,這裡指的其實是根序列集和翻轉為操作構成排列群結構,一元n次方程亦然,估計初中生能理解到這個層面的應該都是天才吧。

 

回來,是不是有點混了,這裡講的互為反函式(逆關係)這個和前面講的對稱函式(關係)有什麼區別麼?

 

來,讀繞口令了:

 

逆關係是定義在關係集上的一元運算子,反函式是當此關係為一一對映函式時的特例。當且僅當某關係逆關係為自己時,稱這種關係為對稱關係,函式成為對稱函式。

 

嗯嗯,好好讀兩遍,相信你能理解。

 

插個小故事放鬆一下,我在推導和寫作這些內容時候,只記得反函式這個概念名詞了,真不記得或者壓根沒有學過當一一對映的函式關係擴充到一般關係的時候這個事情叫啥,叫反關係好像不太合適,加法那裡不是叫逆運算麼,那這裡是不是叫逆關係呢?百度一下,嗯嗯,還真是,哈哈哈,模擬了創造知識過程的學習應該是印象最深刻最開心,也最有裨益的吧。

 

(關係,對映,滿射(函式是從定義域和對應關係產生滿射值域角度度定義的滿射),單射,一一對映(可逆函式)有著逐層包含的美麗層次結構,後面我們寫文章詳細闡述這一點)

 

另外,很多繩結逃脫類魔術也是同樣的原理,只不過操作物件和過程要用拓撲學等知識來描述,要更加複雜,但能解開繩結,一定是進行了一組互逆的函式操作。

 

Ok,理解了以上基本概念以後,我們可以剝離出來利用的數學性質即:加減法互為逆運算,經過兩次對映以後可恢復原值:

a + b - b = a


對,就這麼簡單。注意和滿足對稱函式條件的reverse操作是直接兩次一樣的操作,而這裡是操作和反操作,就這一點區別而已,結果卻都是恢復原狀。


 魔術部分 


篇幅原因,本篇先介紹數學原理到這裡,把依據這個原理構造的兩個魔術放出來供大家欣賞,就先賣個關子,不解釋其中的原理推導和魔術設計點了,相信聰明的你看了上面的數學解釋一定能窺之一二。下一篇我們將具體闡明如何把這一數學性質用到魔術中間去的一些方法論,和這兩個魔術的具體解析;第三篇將進一步討論這一議題並分享一個更新的作品,我會還原它的數學實現和魔術設計過程,相信一定對你理解這些數學和魔術的原理都大有裨益,歡迎繼續關注。

 

視訊1 4Ace Presentation:


視訊2 Exact Composed prediction:

 

感謝小夥伴們傾情出鏡和幫忙拍攝~


最後總結一下今天的內容:加減互為逆運算的背後是集合的合併和拆分互為逆過程,逆過程能使得變數在經原過程以後恢復成初始而使得操作無效,進而創造預測或展示類魔術效果。


更多數學和魔術思考,歡迎關注MatheMagician。

640?wx_fmt=png640?wx_fmt=jpeg

長按上方二維碼關注噢~


作者簡介:magic2728,現就職於騰訊。自幼以數學和魔術為最大愛好,從參加建模比賽到培訓到一線網際網路從業者,其建模經驗遍歷金融,生物,網際網路;魔術表演從學校走向比賽和商演,又迴歸撲克牌魔術理論的研究。他通過建模來思考,參與和改造這個世界,也希望能同步把這些精彩分享給感興趣的朋友們。

相關文章