1. 程式人生 > 其它 >【說句閒話】什麼是 TREE 函式?

【說句閒話】什麼是 TREE 函式?

零、前言

中國國內對於 \(\operatorname{TREE}\) 函式這個數的資料確實有點少,我所看過的大部分文章、視訊說的都是關於 \(\operatorname{TREE}\) 函式的大小。

比如 \(\operatorname{TREE}(3)\) 和葛立恆數的大小比較(雖然確實,葛立恆數在 \(\operatorname{TREE}(3)\) 面前就是個渣渣)。

但極少地提到 \(\operatorname{TREE}\) 函式到底是個什麼東西。當然我這裡也就只是說明一下 \(\operatorname{TREE}\) 函式到底是個啥,剩下的那些證明...我看不懂。

說實話,\(\operatorname{TREE}\)

實際意義暫時不大... 就是個數而已...

參考資料:

在此表示感謝。

一、\(\operatorname{TREE}\) 函式

1. 定義

\(\operatorname{TREE}\) 是一個函式,有一個自變數 \(x\)。提出者 Harvey Friedman。

\(\operatorname{TREE}\) 函式來源於一個連續畫樹的遊戲。

在這個遊戲中,你可以使用 \(x\) 種不同顏色的筆連續畫樹的節點,而邊的顏色我們不考慮。

當然是有規則的:

  • 規則 1:畫的第 \(n\) 棵樹上的節點個數不能超過 \(n\)
  • 規則 2:畫的第 \(n\) 棵樹,前 \(n - 1\) 棵樹不能“包含”在第 \(n\) 棵樹裡。

\(\operatorname{TREE}\) 函式的函式值為通過上述規則所能畫出最多樹的個數。

注意規則 2 的“包含”,數學中有一個名詞,叫“inf-embeddable”(下確界-可嵌入)。

意思就是:

我們設兩棵樹 \(T_1\)\(T_2\)。判斷 \(T_2\) “包含於” \(T_1\)

  • \(T_2\)\(T_1\) 的子圖。
  • \(T_2\) 中取若干節點,這若干節點如果可以跟 \(T_1\)
    的節點建立一一對應關係,而且兩顆樹中,任意對應兩個節點的 最近公共祖先 是同一顏色。

完全滿足上面兩條的我們判斷 \(T_2\) “包含於” \(T_1\)

2. \(\operatorname{TREE}(1)\)\(\operatorname{TREE}(2)\)

我們先從人畜無害的 \(\operatorname{TREE}(1)\)\(\operatorname{TREE}(2)\) 開始畫樹。

\(\operatorname{TREE}(1)\) 中,很明顯我們只能畫出一個根節點。所以 \(\operatorname{TREE}(1) = 1\)

\(\operatorname{TREE}(2)\) 中,我們可以先畫出一個根節點,假設顏色為綠色,然後我們畫第二棵,為兩個紅色的節點連成的樹,然後畫第三個,一個紅色的根節點。我們不能再畫下去了,並且其他方法也不會大於三棵樹,所以 \(\operatorname{TREE}(2) = 3\)

3. 從 \(\operatorname{TREE}(3)\)\(\operatorname{TREE}(x)\)

可以自己嘗試。畫不下去的時候要保證這是樹的個數最大的方案,如果不是,可以換一種畫法,直到找到最大的那種。

但是我不建議你嘗試。