1.やさしい
メモ化(memoisation)とは何ですか?
- A関数が戻った後にメモリを解放すること
- Bコードの各行の横にコメントを書くこと
- C再帰を自動的に等価なループに変換し、コールスタックを不要にすること
- D関数呼び出しの結果を保存し、同じ呼び出しにはメモリから答えること
2.やさしい
増加の上界(upper bound)を表す記法はどれですか?
- ABig Omega
- BLittle omega
- CBig O
- DBig Theta
3.やさしい
log₂ 1024 はいくつですか?
- A512
- B10
- C12
- D32
4.ふつう
動的計画法がマージソートを実質的に高速化しないのはなぜですか?
- A動的計画法はグラフ問題にしか使えず、配列には使えないから
- B部分問題が重複しないので、再利用するものがないから
- Cマージソートはすでに O(n) だから
- Dマージソートには再帰的な構造がないから
5.ふつう
漸化式 T(n) = T(n − 1) + O(n) の解は何ですか?
- AO(n)
- BO(n²)
- CO(n log n)
- DO(2ⁿ)
6.ふつう
ある関数は n 回反復するループを 1 つ実行し、その後別に n 回反復するループをもう 1 つ実行します。時間計算量は何ですか?
- AO(n)
- BO(n²)
- CO(2ⁿ)
- DO(log n)
7.むずかしい
決定問題 X が NP 完全であることを証明するには、どの 2 つのことを示さなければなりませんか?
- AX に多項式アルゴリズムがないこと、および X が決定可能であること
- BX が P の問題に帰着すること、および X が NP に属すること
- CX が P に属すること、および X が SAT に帰着すること
- DX が NP に属すること、および既知の NP 完全問題が多項式時間で X に帰着すること
8.むずかしい
クラス P の定義として正しいものはどれですか?
- A決定性アルゴリズムによって多項式時間で解ける決定問題
- Bどのコンピュータでも指数時間を必要とする問題
- C解を多項式時間で検証できるが、見つけることは決してできない問題
- D並列に解くことができる問題
解答
- 1. D · 関数呼び出しの結果を保存し、同じ呼び出しにはメモリから答えること
- 2. C · Big O
- 3. B · 10
- 4. B · 部分問題が重複しないので、再利用するものがないから
- 5. B · O(n²)
- 6. A · O(n)
- 7. D · X が NP に属すること、および既知の NP 完全問題が多項式時間で X に帰着すること
- 8. A · 決定性アルゴリズムによって多項式時間で解ける決定問題
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。