畫樹畫出一個大數–TREE(3)漫談

2021-01-14 大老李聊數學

大家好,上期我們講了一個大數,叫葛立恆數。今天我們再接再厲,再講一個超大數,叫TREE(3)。這裡TREE就是英文裡樹木的那個單詞TREE。TREE(3)其實就是一個函數,函數名稱叫TREE,而函數自變量取值是3。


上期講過,TREE(3)跟葛立恆數比的話,葛立恆數是屬於忽略不計的。更為神奇的是,TREE(3)的定義比葛立恆數更簡單,簡單來說,它就是一個畫「樹」的遊戲,樹林的樹。這裡,這個「樹」的概念,對計算機專業的聽眾來說再熟悉不過了,什麼二叉樹,查找樹等等。如果你不是計算機專業的,也不要緊。你應該也看到過公司的組織架構圖,或是某個人的家譜等等,也是用類似一棵樹的結構展示的,這就是我們今天要談的樹的概念。我在節目介紹裡也放了一個樹的簡單示意圖。


然後TREE(3)這個數,就可以用一種畫樹的遊戲來導出,畫的時候,我們會給每個節點,俗稱葉子的東西,畫上某種顏色。而對線段,俗稱樹枝,我們不關心它的顏色。而TREE(3),意思就是用三種顏色來畫這顆樹。


我們還有一些畫樹的規則。這個畫樹的遊戲只有兩個規則。第一條規則是這樣,你畫的第一棵樹,只能有一個節點,第二棵樹,不能超過2個節點,第三棵樹不能超過3個節點…第n棵樹,不能超過n個節點。也就是,越到後面,你樹中的節點可以越來越多,但不能多過你畫的樹的序號。


第二個條件,你後面畫的樹,不能「包含」前面的樹。這裡「包含」的概念是這樣的,比如你後面的樹去掉若干葉子後,就是之前的樹,用術語說,就是前面的樹是這顆樹的子樹,那就犯規的。但我們這裡「包含」的意思要比「子樹」的定義更寬泛點,我們還要求以下這種情況也不允許,就是當前的樹中如果取若干節點,這若干節點如果可以跟之前的某棵樹的節點建立一一對應關係,而且兩顆樹中,任意對應兩個節點的最近共同祖先是同一顏色,那也不允許。所謂最近共同「祖先」的概念也是很好理解的,就是兩個葉子同時向根節點回溯,那它們遲早會在某個節點匯合,最遲也是根節點,那這個結點就叫「最近共同祖先」,如果你把樹看作一個家譜的話,那你就更好理解了。現在的要求就是,如果兩棵樹之間,如果對應節點的最近共同祖先是同一顏色,那遊戲結束。其實這種「包含」在數學上有個術語叫inf-embeddable. Embeddable 就是可嵌入的意思,這個詞搞嵌入式系統的再熟悉不過。INF是什麼意思呢,它其實是下確界,或者說最大下界的拉丁文縮寫。為什麼用這個詞,因為如果你把一棵樹某個枝條上的節點當做一個大小排序的話,且根節點最小,那麼兩個節點的最近祖先其實就是最大的且比這兩個節點都小的的節點, 所以叫下確界,INF。這就是inf-embeddable的全部意思。


(下圖:左邊的樹包含右邊的樹)



OK,以上就是畫樹遊戲的全部規則。那我跟大家在節目裡演示下,玩玩看。當然很推薦你現在拿支筆和紙,一起來玩玩看,你可以用不同的符號來表示顏色。那我們先從TREE(1)這個遊戲開始玩,也就是只用一種顏色,假設你用的是紅色。先畫第一棵樹,那你明顯只能畫一個根節點是紅色。你會發現你沒辦法再畫第二棵樹了,因為第二棵樹,你最多畫兩個節點。你重畫一個紅色的根結點,那跟第一棵樹一樣,肯定不行。你如果畫兩個紅色節點,那也包含第一棵樹,也不行。所以遊戲結束,你只能畫出一棵樹,那我們知道TREE(1)=1。


(下圖: TREE(1)遊戲示意,右邊的樹包含左邊的樹,所以遊戲結束。TREE(1)=1)


接下來玩下TREE(2),用兩種顏色,紅色和綠色。那你第一棵樹,比如還是用紅色畫一個根節點,第二棵樹你如果用綠色畫一個根結點,那你會發現你第三棵樹就沒法畫了,因為第三棵樹無論怎麼畫,必然包含第一顆或第二棵樹。但我們還有一個更好的做法。那就是第二棵樹畫成綠色的根節點接一個綠色的葉子。這樣,我們第三棵樹就可以畫成只有一個綠色根結點的樹,就一個根。因為我們規則只限制後面的樹不能包含前面的樹,沒有規定前面的樹不能包含後面的樹。這樣雖然我們第二棵樹包含了第三棵樹,但是第三棵樹沒有包含之前的樹,所以這是允許的。這之後,你會發現你無法再畫出第四顆樹了。所以TREE(2)=3。


(下圖:TREE(2)遊戲示例,你最多畫出如下三顆樹,所以TREE(2)=3)

 

好TREE(1) ,TREE(2)的遊戲我們都玩過了,現在到見證奇蹟的時刻了,我們要玩TREE(3)了,比如你可以再加入一個顏色,藍色。用紅,綠,藍三色來玩這個畫樹的遊戲。你會發現,這次你似乎發揮餘地大多了,你可以畫非常多的樹。我在節目介紹裡,也放了TREE(3)遊戲開始的12棵樹的可能畫法:

但是我勸你不要繼續了,因為你無法畫到它結束的時刻,因為這個TREE(3)的值實在太大了,大到驚天地泣鬼神,比葛林恆數還大。當然,你可能此時會質疑,你怎麼證明TREE(3)是一個有限值,而不是無窮大的,也就是我可以無窮的玩下去呢?


這裡要用到一個定理,叫克魯斯科爾樹定理。克魯斯科爾這個名字計算機系的聽眾又是太熟悉了,克魯斯科爾算法是考試必考的對不對。克魯斯科爾算我們計算機系學生膜拜的大神了,他已於2010年去世,這裡我們也順帶緬懷一下。我們今天不考最小生成樹算法,而是克魯斯科爾發現的這個樹定理。這個定理有個粗糙但簡單的說法就是如果你給我無窮多個樹,那其中必然有一個樹是另一顆的INF-embeddable,同下確界意義上的嵌入。那TREE(3)是一個有限的數其實就這個定理的直接推論了,是不是?


你可能關心TREE(3)這個有限的數到底有多大?不管你信不信,這其實是今天節目最難點了。上一期葛立恆數我用箭號表示法,大概還能說明下葛立恆數有多大,但是在TREE(3)面前,箭號表示法已經完全不管用了。但是我們還是可以參考下,上期我們說了葛立恆數可以用64重箭號表示法來表示,那TREE(3)如果要用多重箭號表示法表示,那需要的層數將遠遠大於葛立恆數。這大概是我最好的形容了,再往下我都不知道怎麼說了,因為再怎麼用語言或符號表達,我都感覺都是很徒勞了。當然,如果你有興趣還是可以上網搜搜有關TREE(3)的符號表示,為了表示它的大,得用各種專門的運算符號才行,雖然這些符號對普通人來說,已經沒什麼感覺了。


關於TREE(3)還有好玩的一點,就是根據克魯斯科爾樹定理,TREE(4), TREE(5),TREE(100)都是有限的對不對?那TREE(TREE(3)呢,就是用用TREE(3)個顏色玩這個畫樹遊戲,那它還是有限的。那如果TREE(TREE(3))我如此嵌套TREE(3)重呢? 對這個數我表示我大腦系統崩潰了。


OK,今天有關TREE(3)話題就聊到這了,我還是很喜歡TREE(3)這個數,因為它定義是如此之簡單,而且從平淡無奇的TREE(1),TREE(2), 到TREE(3)如同宇宙大爆炸式的轉變,實在太讓人吃驚了。另外各位以後寫情書也可以考慮寫「我愛你TREE(3)年」等等。下周再見!


收聽「大老李聊數學」音頻                                        關注「大老李聊數學」






相關焦點

  • HTML 5 Canvas 遞歸畫樹
    有了這些信息,其實就描述了一個線段,通過這些信息我們才能畫一個線段。接下來又很可恥地一大段定義:var rand = Math.random,  newLength, newAngle, newDepth, maxBranch = 3,  endX, endY, maxAngle = 2 * Math.PI / 4,  subBraches; rand其實就是隨機一個0~1之間的實數
  • 如何比對不同序列同源性,畫出高顏值的進化樹?
    中糧肉食中心實驗室團隊   編輯:劉建城    審核:龍進學博士                                                  如何畫出高顏值的進化樹                   比如↓↓↓如果我們也能畫出這麼漂亮的進化樹,那麼升職加薪,迎娶白富美,當上CEO,走上人生巔峰,都不是事兒啊。(扯的有點遠,不過加油吧!!!)
  • 淺絳山水畫樹六法
    古今學畫樹者須知「樹分四枝」,即前、後、左、右枝。但在實踐中,未必非要畫上四枝,只是強調畫樹需要理解樹枝有前後之分。此法畫遠近景樹均可採用。 用意勾法畫雜樹,求筆墨多變,用濃淡幹焦的墨色勾勒雜樹枝幹,注意背向穿插。
  • 畫房子?畫樹?畫人?繪畫讓小朋友「做情緒的主人」
    越來越多的青少年存在著不同的問題如何讓他們去正視這些不可避免的「階段」尤為重要~近年來,吉大街道九洲社區攜手香洲區心理諮詢協會在社區推廣生命教育,為社區青少年搭建了一個認識生命、理解生命意義的平臺,引領社區青少年認識生命、愛護生命、熱愛生命,樹立正確的人生價值觀。該項活動的開展收到顯著效果,逾百名社區青少年參與受惠,家長們由衷地為主辦方點讚。
  • 我愛你 TREE(3)年
    TREE(3)這個數,可以用一種畫樹的方式來導出。畫的時候,我們給每個節點(即葉子)畫上某種顏色,而線段(即樹枝)無所謂顏色。所以TREE(3),意思就是用三種顏色來畫這顆樹。第一棵樹畫一個綠色的節點,第二棵樹選擇紅色,但如果第二樹只畫一個紅色的節點,那第三棵樹就畫不下去了,因為第三棵樹無論怎麼畫,必然包含第一顆或第二棵樹。所以,我們第二棵樹可以畫兩個紅色的節點,這樣我們第三棵樹就可以畫成一個紅色節點(規則二規定後面的樹不能包含前面的樹,沒有規定前面的樹不能包含後面的樹)。
  • sai板繪怎麼畫?幾分鐘畫出一個星球!
    sai板繪怎麼畫?幾分鐘畫出一個星球!如何畫出氣勢磅礴的宇宙星球?在廣闊無際的宇宙中,有著太多還未被人類發現的星球,而這些星球散發的光景又讓人忍不住想去探索。沒錯今天給大家分享就是星球畫法,那麼接下來讓我為大家介紹,怎樣在5分鐘內完成一幅勾起人類探索之心的星球插畫。
  • 使用ggtree實現進化樹的可視化和注釋
    ggtree是個簡單易用的R包,一行代碼ggtree(read.tree(file))即可實現樹的可視化。而注釋通過圖層來實現,多個圖層可以完成複雜的注釋,這得力於ggtree的設計。其中最重要的一點是如何來解析進化樹。除了ggtree之外,我所了解到的其它畫樹軟體在畫樹的時候都把樹當成是線條的集合。
  • 如何畫出一幅經典的淺絳山水畫?
    筆墨技法筆墨的勾、皴、染、點、擦:「勾」是勾出物體的輪廓線;「皴」是用長短寬窄不同的筆觸表達物體的明暗和空間;「染」是用淡墨烘染;「點」是點苔。點染可以增加景物的蒼茫氣氛,也可以加強畫面景物深淺遠近的對比,使之層次分明、豐富、生動。用墨方法可分為潑墨法、積墨法、破墨法、宿墨法,焦墨法等,這幾種方法也可以結合使用。
  • 畫出海洋
    畫出海洋是一個以畫畫為主題的休閒益智類遊戲,玩家在這裡擁有一支神奇的畫筆,可以繪畫出各種各樣事物,玩家的任務就是繪製一片海洋,海洋裡的所有動植物,都要背繪畫進去,玩家需要按照所有動植物的形狀去描繪它們,只有形象特別接近,相似度特別高才可以讓這些生物活過來變成真實的動植物,讓你的海洋充滿活力,快來給自己繪製一片海洋吧。
  • 繪畫教程系列:如何用彩色鉛筆畫出一幅漂亮的風景畫!
    彩色鉛筆風景畫教學步驟。先說明,為了使得整個過程更加清楚,這兒增加了很多鉛筆素描圖。同時,你也可以根據你周圍的風景進行選材,這兒只是給你一個大致的畫風景畫的思路。如何把樹、房子、小山、灌木和花朵畫在你的畫上完全由你來決定!最重要的是享受繪畫的樂趣,不要放棄。從你視線最近的地方開始,被一條地平線分開,讓後在背景中畫上幾座山。
  • 中國畫畫法教程之怎樣畫雜樹,樹木的結構及作畫步驟詳解
    切忌照搬畫葫蘆,更重要的是我們表現的主題決定了所要採用的形式,樹,山,石,水和雲只是用以完成主題的一種元素,所以在畫中切不可喧賓奪主。畫山水先畫樹,這是傳統山水畫的必經之路,也是學習書法用筆的必然的一關。
  • 【科研作圖】AI快速畫出一個肝臟
    至於畫的好不好,這個需要持續練習,把握細節,提升審美。總結了一下,我發現繪製這麼一個肝臟,好像4個大步驟就能完成。繪圖期間只需要使用鉛筆工具、平滑工具、效果工具。鉛筆工具主要是用於繪製肝臟外形。最快捷的辦法就是在搜索一張肝臟的圖片,然後置入到AI中,用鉛筆工具順著外形去描繪勾勒肝臟外形。
  • 喜見百年樹嘉卉——評《嘉卉 百年中國植物科學畫》
    【讀書者說】      作者:薛冰(南京市作協前副主席,文化學者、作家、藏書家)  今年初發生的新型冠狀病毒肺炎,讓很多人接觸到一個生物學概念——演化樹(又稱進化樹)。即使缺少專業知識,通過這種一目了然的樹狀結構,也能看清病毒的演變過程。
  • 超現實主義:畫出夢境
    澳大利亞雪梨大學神經科學家艾倫·施奈德近年來使用經顱磁刺激法(TMS),利用脈衝磁場暫時性抑制左額葉和顳葉幾分鐘後,發現有40%的受試者展現出奇特的新藝術才能。   「夢之繪畫」:畫的也許不是夢   「夢之繪畫」,就是畫出做夢時看到的景象。
  • 機器學習之決策樹在sklearn中的實現
    小夥伴們大家好~o( ̄▽ ̄)ブ,首先聲明一下,我的開發環境是Jupyter lab,所用的庫和版本大家參考:Python 3.7.1(你的版本至少要3.4以上Scikit-learn 0.20.0 (你的版本至少要0.20Graphviz 0.8.4 (沒有畫不出決策樹哦,安裝代碼conda install python-graphviz
  • 精細動作練習 Play Dough Fine Motor Skill Tree
    今天我們還繼續用黃色的橡皮泥做成一個精細動作練習。A few days ago we made yellow play dough to use for our corn kernel counting activity. Today we will use this play dough for a little fine motor skill practice.
  • 同樣是畫蜜蜂,他畫出了書法的感覺,她卻畫成了胖嘟嘟的蜘蛛俠
    Terry涉獵廣泛,作品不僅僅局限在繪畫領域,畫蜜蜂屬於「情不自禁」之作,畫裡畫外,滿滿都是愛。畫蜜蜂的人很多,讓章魚君印象深刻的除了Terry的作品,還有來自加拿大漫畫家卡米拉的手繪。卡米拉畫連載漫畫,也繪製單幅插畫,作品口味整體偏重(用她自己的話說,這叫超現實主義),總之算不上主流,有趣的是,在她眾多另類的作品之中,有一個系列卻像一股清流,看起來超暖心,這就是她的「蜜蜂系列」。
  • 炫酷動圖,美麗的「妖樹」,勾股定理畫出的一棵樹
    下面一畢達哥拉斯樹為例說說數學文化的魅力。1.畢達哥拉斯樹是什麼?雖說數學是十分枯燥的,但是科學家總能從中找到無限的樂趣,畢達哥拉斯樹就是由古希臘數學家畢達哥拉斯,利用勾股定理所畫出的一個無限重複圖形,當重複的次數夠多時,就會形成一個樹的形狀,所以也有人稱之為「勾股樹」。
  • 如何畫出優秀的架構圖?
    3. 架構圖的作用 一圖勝千言。要讓干係人理解、遵循架構決策,就需要把架構信息傳遞出去。架構圖就是一個很好的載體。那麼,畫架構圖是為了: 解決溝通障礙 達成共識 減少歧義 4.
  • 一支鋼筆,教你畫出好看的風景畫
    一開課,石導師向大家說明課程的兩個主要內容——藝術鑑賞和動手繪畫,先進行鋼筆畫的藝術鑑賞,了解鋼筆作畫的形式和特點、技法,剖析鋼筆畫的步驟,等學員們對鋼筆畫有了一定的了解,再動手繪製一幅鋼筆畫。「鋼筆畫是以普通鋼筆或特製的金屬筆灌注或蘸取墨水繪製成的畫。