阿克曼函式(ackermann)是非原始遞迴函式的例子。它需要兩個自然數作為輸入值,輸出乙個自然數。它的輸出值增長速度非常快,僅是對於(4,3)的輸出已大得不能準確計算。
\[a(m, n)=\left\ & \\ & \\ & \end\right.
\]因為\(m\)很小,所以我們可以針對\(0\leq m \leq 3\)來對阿克曼函式進行推導
對於阿克曼函式的具體推導過程如下:
\[a(0, n)=n+1
\]\[\begin a(1, n) &=a(0, a(1, n-1))=a(1, n-1)+1 \\ &=a(0, a(1, n-2))=a(1, n-2)+2 \\ &=a(0, n-3)+3 \\ & \cdots \\ &=a(1,0)+n \\ &=a(0,1)+n \\ &=n+2 \end
\]\[\begin a(2, n) &=a(1, a(2, n-1))=a(2, n-1)+2 \\ &=a(1, a(2, n-2))+2 \\ &=a(2, n-2)+2 \times 2 \\ & \cdots \\ &=a(2,0)+2 \times n \\ &=a(1,1)+2 \times n \\ &=3+2 \times n \end
\]\[\begin a(3, n) &=a(2, a(3, n-1)) \\ &=a(3, n-1) \times 2+3 \\ &=a(2, a(3, n-2)) \times 2+3 \\ &=(a(3, n-2) \times 2+3) \times 2+3 \\ &=2 \times 2 \times a(3, n-2)+2 \times 3+3 \\ &=2 \times 2 \times a(3, n-2)+2 \times 3+3 \\ &=2 \times 2 \times(a(3, n-2)+2 \times 3+3) \\ &=2 \times 2 \times(a(3, n-3) \times 2+3)+2 \times 3+3 \\ &=2^ \times a(2,1)+3 \times\left(2^-1\right) \\ &=2^ \times 5+2^ \times 3-3 \\ &=2^-3 \end
\]
阿克曼函式
阿克曼函式可以遞迴地定義如下 現在艾迪給你兩個數字 m和n,你的任務是計算的價值 m,n 這是如此簡單的問題,如果你解決這個問題,你將收到乙個獎 艾迪將邀請你,6餐廳吃晚飯 輸入的每一行輸入兩個整數,即m,n,0 m 3。注意,當m 3,n可以是任意整數不到1000000,而m 3,n的值限制在24...
阿克曼函式的計算
上圖為阿克曼函式的定義,根據函式解析式,我們可以很容易的寫出遞迴式 def akm m,n if m 0 return n 1elif m 0and n 0 return akm m 1,1 elif m 0and n 0 return akm m 1,akm m,n 1 m,n map int,i...
可持久化並查集(一) 從阿克曼函式到映象
noip2010 以下題目可以跳過。prison.pas c cpp 問題描述 s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值...