ある分割統治アルゴリズムは、大きさ の入力を大きさ の つの部分問題に分けて再帰的に解き、分割と統合に の手間をかける。その計算時間 は、 以上の整数 に対して のとき、次の漸化式で与えられる。
を の式で表せ。
分割統治の漸化式の厳密な解
, のような漸化式を とおいて の漸化式に直し、 を の式で求められる
前提
- 置き換えによる漸化式の解法 (数学B 数列)
この技能までの道筋(19 技能)
読み込み中…
右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 小数の四則計算 (算数 計算と数のきまり)
- 分数のたし算・ひき算 (算数 計算と数のきまり)
- 分数のかけ算・わり算 (算数 計算と数のきまり)
- 小数と分数のまじった計算 (算数 計算と数のきまり)
- 逆算(□ を求める) (算数 計算と数のきまり)
- 正負の数の加法・減法 (中学数学 数と式)
- 四則の混じった計算の順序 (算数 計算と数のきまり)
- 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
- 分配法則を使った計算のくふう (算数 計算と数のきまり)
- 文字式の計算(同類項・分配法則) (中学数学 数と式)
- 1 次方程式の解き方 (中学数学 方程式)
- 連立方程式の解き方(加減法・代入法) (中学数学 方程式)
- 等差数列・等比数列の一般項 (数学B 数列)
- 型の漸化式 (数学B 数列)
- 等間隔にならんだ数の和 (算数 計算と数のきまり)
- 等差・等比数列の和と Σ (数学B 数列)
- 階差数列と階差型の漸化式 (数学B 数列)
- (等差)×(等比)の数列の和 (数学B 数列)
- 置き換えによる漸化式の解法 (数学B 数列)
説明
アルゴリズムの計算時間を表す , のような分割統治の漸化式を、 とおいて普通の数列の漸化式に直し、 を の式で正確に求められるようになります。マージソートのように、大きさ の問題を大きさ の問題 個( は正の整数)に分けて解き、分割と統合に に比例する手間がかかる場面で使います。オーダーを見積もるだけでなく、具体的な値まで求められます。
なぜそうしてよいのか
は、 での値を での値から決める式です。 から出発して を 2 倍ずつにしていくと、値が決まるのは だけです。そこで ( は 0 以上の整数)に限り、 とおきます。 のとき なので です。また、式の中の そのものは です。すると漸化式は ()、 という、添字が 1 ずつ進む普通の数列の漸化式になります。
この形は、前提の技能で扱った 型と同じです。分割統治では は部分問題の個数なので正の整数であり、特に です。そこで両辺を で割り、 とおくと という階差型になります。あとは を等比数列の和で計算し、 に戻せば が求まります。ただし のときは公比が 1 なので和は になり、 なら です。
手順
が 0 でない(分割統治では正の整数)ことを確認し、( は 0 以上の整数)とおく。 のとき である。
漸化式を で書き直す: ()。初期値は 。
なので両辺を で割り、 とおいて階差型 に直す()。
を計算する。 なら等比数列の和、 なら和は 。
に戻して を求め、 で元の漸化式と一致するか確かめる。
例題
関数 が 、( は 2 以上の 2 のべき乗)を満たすとき、( は 0 以上の整数)を の式で求めよ。
例題の解答
手順1: 。 とおく。 のとき なので 。
手順2: 漸化式は ()、初期値は 。
手順3: 両辺を で割ると 。 とおくと 、。
手順4: のとき 。これは のときも で成り立つ。
手順5: 。確認: で 、 で 、 で と一致する。
よって 。
答え:
よくある誤り
式の中の を に書き換えて としてしまう誤り。正しくは なので 。
初期値を としてしまう誤り。 なので正しくは 。 から始めると となるが、本当の とは合わず、誤った値になる(一般には という誤った式が出る)。
(例: )のときも等比数列の和の公式 に を入れてしまう誤り。分母が 0 になるので使えない。正しくは より 、 なら 。
求めた式が 2 のべき乗でない にも成り立つとしてしまう誤り。この漸化式で値が決まるのは のときだけで、 の式にするなら として ( を用いた)と、 が 2 のべき乗の場合に限って書く。
この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。
入口の問題
ある分割統治アルゴリズム(マージソートの型)は、大きさ の入力を大きさ の つの部分問題に分けて再帰的に解き、分割と統合に の手間をかける。その計算時間 は、 以上の整数 に対して のとき、次の漸化式で与えられる。
を の式で求めよ。ある分割統治アルゴリズムは、大きさ の入力を大きさ の つの部分問題に分けて再帰的に解き、分割と統合に の手間をかける。その計算時間 は、 以上の整数 に対して のとき、次の漸化式で与えられる。
を の式で求めよ。
この技能を使う問題
ある分割統治アルゴリズムは、大きさ の入力を大きさ の 3 つの部分問題に分けて再帰的に解き、分割と統合に の手間をかける。その計算時間 は、0 以上の整数 に対して のとき
を満たすとする。0 以上の整数 に対して、 を の式で表せ。ある分割統治アルゴリズムは、大きさ の入力を大きさ の つの部分問題に分けて再帰的に解き、分割と統合に の手間をかける。その計算時間 は、 以上の整数 に対して のとき
を満たす。( は 以上の整数)のときの を、 の式で表せ。対数を使う場合は を用いてよい。ある分割統治アルゴリズムは、大きさ の入力を大きさ の つの部分問題に分けて再帰的に解く。分割と統合には の手間をかける。入力の大きさは のべき ( は 以上の整数)に限るものとし、計算時間 は次の漸化式で定まるとする。
のときの を の式で表せ。対数を使う場合は、底を明示するか自然対数 を用いて表すこと。ある分割統治アルゴリズムは、大きさ の入力を大きさ の つの部分問題に分けて再帰的に解き、分割と統合に の手間をかける。入力の大きさは のべき ( は 以上の整数)に限って考え、その計算時間 は
をみたすとする。 以上の整数 に対して、 を の式で表せ。ある分割統治アルゴリズムの計算時間 は、 以上の整数 に対して のとき、次の漸化式で与えられる。
の形の に限って を考えるとき、 となる関数 を求めよ。答えは の中身の式(定数倍を除いた最も簡単な形。例:)で答えよ。ある再帰アルゴリズムは、大きさ の入力を大きさ の つの部分問題に分けて再帰的に解き、分割と統合に の手間をかける。その計算時間 は、 以上の整数 に対して の形の について
で定められている。以上の整数 に対し、 を の式で表せ。
この技能の次に学べること
- マスター定理 (大学数学 アルゴリズムと計算量)