高度試験午前I暗記無料で始める

アッカーマン関数とは?あっかーまんかんすう

アッカーマン関数とは、2つの非負整数を引数に取り、再帰の深さが爆発的に増える関数。Ack(0,n)=n+1、Ack(m,0)=Ack(m-1,1)、Ack(m,n)=Ack(m-1,Ack(m,n-1)) と定義され、内側の呼出しの結果が外側の引数になる入れ子構造をもつ。原始再帰では表せない全域関数の例として知られ、値の増え方が極端に速いことから、再帰の理解を試す題材として繰り返し出題される。値を求めるときは定義の3本の式を機械的に当てはめ、内側から順に展開していくのが確実である。

最終更新:2026-10-07

試験情報

高度試験・午前I(全区分共通)の過去問では1回出題されています。

高度試験・午前I(全区分共通)の頻出用語/午前I(全区分共通)

別名:Ackermann関数、Ack

この語が出る過去問を解く →

具体例

Ack(1,3) を求めるには、Ack(1,0)=Ack(0,1)=2 → Ack(1,1)=Ack(0,Ack(1,0))=Ack(0,2)=3 → Ack(1,2)=Ack(0,3)=4 → Ack(1,3)=Ack(0,4)=5 と、mが小さいほうから順に確定させていく。Ack(4,2) は既に2万桁近い値になり、素直に計算することはできない。

試験での引っ掛け

外側から展開しようとして途中で行き詰まる誤りが定番で、内側の Ack(m,n-1) を先に確定させるのが正しい順序である。Ack(m,0) の場合に Ack(m-1,0) としてしまう誤りも多い(正しくは Ack(m-1,1))。定義の3本目だけを見て「必ず引数が1つずつ減る」と考えないこと。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題
  • 分野:午前I(全区分共通)
  • 外側から展開しようとして途中で行き詰まる誤りが定番で、内側の Ack(m,n-1) を先に確定させるのが正しい順序である。