非負の整数m,nに対して次のとおりに定義された関数Ack(m,n)がある。Ack(1,3)の値はどれか。 Ack(m,n)=Ack(m−1,Ack(m,n−1)) (m>0かつn>0のとき) Ack(m,n)=Ack(m−1,1) (m>0かつn=0のとき) Ack(m,n)=n+1 (m=0のとき)
ウ. 5
アッカーマン関数は定義に従い再帰展開する典型問題。m=0なら結果はn+1。Ack(1,3)=Ack(0,Ack(1,2))と展開し、Ack(1,2)=Ack(0,Ack(1,1))、Ack(1,1)=Ack(0,Ack(1,0))、Ack(1,0)=Ack(0,1)=2と最内側から計算する。順にAck(1,1)=3、Ack(1,2)=4、Ack(1,3)=5となり正解はウ。m=1ではAck(1,n)=n+2となる性質があり、再帰の停止条件と評価順序の理解を問う。
情報処理安全確保支援士試験 平成30年度春期 午前Ⅰ の過去問一覧へ戻る・問2