技能一覧 › 大学院数学 数理論理学・集合論

累積再帰

が のいくつかの値(, など)で決まる累積再帰の定義について、それまでの値の列をゲーデル数で 1 つの数にまとめれば通常の原始再帰になることを理解し、値の表を小さい から順に埋めて、指定した値をとる最小の などを求められる

前提

この技能までの道筋(25 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 小数の四則計算 (算数 計算と数のきまり)
  2. 分数のたし算・ひき算 (算数 計算と数のきまり)
  3. 分数のかけ算・わり算 (算数 計算と数のきまり)
  4. 小数と分数のまじった計算 (算数 計算と数のきまり)
  5. 逆算(□ を求める) (算数 計算と数のきまり)
  6. 正負の数の加法・減法 (中学数学 数と式)
  7. 四則の混じった計算の順序 (算数 計算と数のきまり)
  8. 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
  9. 分配法則を使った計算のくふう (算数 計算と数のきまり)
  10. 文字式の計算(同類項・分配法則) (中学数学 数と式)
  11. 1 次方程式の解き方 (中学数学 方程式)
  12. 連立方程式の解き方(加減法・代入法) (中学数学 方程式)
  13. 等差数列・等比数列の一般項 (数学B 数列)
  14. 数学的帰納法と一般項の推定 (数学B 数列)
  15. 原始再帰的定義と関数の値 (大学院数学 計算理論・ラムダ計算)
  16. 樹形図で数え上げる (算数 場合の数)
  17. 積の法則と和の法則 (算数 場合の数)
  18. 和の法則・積の法則と樹形図 (数学A 場合の数と確率)
  19. 約数の個数と総和 (数学A 整数の性質)
  20. 素因数分解による列のゲーデル数 (大学院数学 数理論理学・集合論)
  21. 順列・円順列・重複順列 (数学A 場合の数と確率)
  22. 組合せ (数学A 場合の数と確率)
  23. 写像・単射の個数と集合の濃度 (大学数学 集合と位相)
  24. 可算集合 (大学数学 集合と位相)
  25. カントールの対関数とその逆 (大学院数学 数理論理学・集合論)

説明

原始再帰では を直前の値 だけから決めましたが、実際には やカントールの対関数の逆 のように、もっと前の値を参照したい定義がよく現れます。このように が のいくつかの値で決まる定義を累積再帰(値の経過による再帰)といいます。この技能では、初期値と「それまでの値から次の値を作る規則」が原始再帰的であれば、累積再帰がゲーデル数を使って通常の原始再帰に書き直せる理由を理解し、値の表を小さい から順に埋めて、指定した値や条件を満たす最小の を求めます。

なぜそうしてよいのか

累積再帰で困るのは、原始再帰の形 では「直前の 1 つの値」しか渡せないことです。そこで、それまでの値をすべて 1 つの数にまとめて持ち運びます。列のゲーデル数を使って

とおきます( は空の列の符号)。 を素因数分解して の指数から を引けば ()がすべて読み取れるので、「 のいくつかの値から を計算する」操作は、「 から計算する」操作として書けます。これを と書くことにします。ここで仮定するのは、初期値 が定数(引数があればその原始再帰的関数)であり、 が原始再帰的であることです。たとえば なら で、 や のような添字の計算、和や積は原始再帰的なので、この仮定は満たされます。また、符号の成分の読み取り ( を割り切る のべきの指数から を引いたもの)、 番目の素数 、積とべきもすべて原始再帰的な関数であることを使います。

すると 自身は

と、 に新しい値 を 1 成分つけ足すだけで次が決まります。 は から( なら初期値として、 なら として)読み出せるので、右辺は と の原始再帰的関数です。つまり上の仮定のもとで は通常の原始再帰で定義でき、 と成分を読むことで も原始再帰的に得られます。

計算のうえでは、これは「値の表を左から右へ埋めていく」ことにほかなりません。 は「ここまでに埋めた表」を 1 つの数で表したもので、 を計算するときに必要な などは、すでに埋めた欄から読めばよいのです。参照先の添字がつねに 以下であることが、この方法がうまくいく理由です。

手順

  1. 定義を読み、初期値 と、 がどの添字(, , など)の値を使うかを確認する。参照する添字が 以上 以下であることも確かめる

  2. 表を用意し、 の欄に初期値を書く

  3. の順に、 の計算に必要な添字(たとえば )をまず計算する

  4. すでに埋めた欄からその値を読み、定義の式に入れて を表に書き込む

  5. 問われている条件(値が一致する・ある値以上になるなど)を満たす欄が現れるまで手順 3・4 をくり返し、それより前の欄が条件を満たさないことを確かめて最小の を答える

例題

関数 ()を

で定める。 となる最小の を求めよ。

例題の解答

【手順 1】 は と を使う。 なので、どちらもすでに計算済みの値である。

【手順 2】。

【手順 3・4】 の順に、 を求めてから表を埋める。
- :、
- :、
- :、
- :、
- :、
- :、
- :、
- :、

【手順 5】表は 。 はすべて 未満で、 だから、 となる最小の は 。

答え:

よくある誤り

この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。

入口の問題

この技能を使う問題