「心算「Ackerman函式

2021-06-05 17:24:52 字數 539 閱讀 6095

[cpp]view plain

copy

intack(

intm,

intn)

else

if(n==0)  

else

} 求ack(2,29)是多少?

在筆試現場,不准使用任何編譯工具。你仔細看之後會發現這個迴圈還是很多的!那我們該怎麼辦呢。那肯定就不是每個迴圈都來作,這個時候就要找規律,做推導。

我們來看下  ack(1,n)=ack(0,ack(1,n-1))=ack(1,n-1)+1=...=ack(1,0)+n   

我們推知ack(1,0)=2  

故  ack(1,n)=n+2;

ack(2,n)=ack(1,ack(2,n-1))=ack(2,n-1)+2=...=ack(2,0)+2n  

我們推知ack(2,0)=3   故

ack(2,n)=2n+3

所以上面的結果就是  2*29+3=61 

注意:類似於這樣的題目,唯一的方法就是推導規律。

Ackerman函式的棧實現

一 ackerman函式 ackerman函式的定義如下 二 ackerman函式的遞迴實現 利用遞迴來實現ackerman函式是比較簡單的 1 sample input 20 1 31 145 sample output 62 738 910 include11 using namespace s...

Ackerman的遞迴與非遞迴演算法

已知ackerman函式的定義如下 a km m,n n 1,text akm m 1,1 m neq 0,n 0 akm m 1,akm m,n 1 m neq 0,n neq 0 end akm m,n n 1 akm m 1 1 akm m 1,akm m,n 1 m 0m 0,n 0m 0 ...

經典貪心演算法 貪心演算法概述

貪心演算法具有最優子問題結構,它的特點是 短視 每次選擇對當前局面最有利的決策,來一步步獲得最優解。我個人認為,貪心不是乙個具體的方法,而是一類方法,貪心演算法的關鍵不在於想到,而在於正確性的證明。要證明乙個貪心演算法是正確的,需要證明我們可以把乙個最優解逐步轉化為我們用貪心演算法所得到的解,而解不...