1.やさしい
ある問題が通常「扱いやすい(tractable)」と呼ばれるのはどのような場合ですか?
- A解がない場合
- B多項式時間で解ける場合
- Cあらゆる可能性を試すことでしか解けない場合
- D定数時間で解ける場合
2.やさしい
log₂ 1024 はいくつですか?
- A32
- B10
- C512
- D12
3.やさしい
メモ化(memoisation)とは何ですか?
- A関数が戻った後にメモリを解放すること
- Bコードの各行の横にコメントを書くこと
- C関数呼び出しの結果を保存し、同じ呼び出しにはメモリから答えること
- D再帰を自動的に等価なループに変換し、コールスタックを不要にすること
4.ふつう
辺の重みが非負のグラフで、一つの始点からの最短経路を求めるアルゴリズムはどれですか?
- AKruskal 法
- B深さ優先探索(DFS)
- CDijkstra 法
- Dどの場合でも Bellman–Ford が必要
5.ふつう
for i = 1 to n: for j = 1 to i: do O(1) work の時間計算量は何ですか?
- AO(n²)
- BO(n³)
- CO(n)
- DO(n log n)
6.ふつう
漸化式 T(n) = 2T(n/2) + O(1) の解は何ですか?
- AO(n)
- BO(log n)
- CO(n²)
- DO(n log n)
7.むずかしい
ナップサック問題のどの変種で、「重さあたりの価値の順に品物をとる」という貪欲な規則が常に最適解を与えますか?
- A品物を必ず丸ごととらなければならない 0/1 ナップサック問題
- Bどちらの変種でもない
- C品物を分割できる分数ナップサック問題
- D両方の変種
8.むずかしい
挿入ソートはソート済みの入力に対して O(n) で動作します。これは比較ソートの Ω(n log n) の下界と矛盾しますか?
- Aはい。ただし 100 より短い配列の場合に限る
- Bいいえ。下界はすべての入力にわたる最悪の場合に適用されるのであって、すべての入力に適用されるわけではない
- Cいいえ。挿入ソートは比較ソートではないから
- Dはい。したがって下界は誤りである
解答
- 1. B · 多項式時間で解ける場合
- 2. B · 10
- 3. C · 関数呼び出しの結果を保存し、同じ呼び出しにはメモリから答えること
- 4. C · Dijkstra 法
- 5. A · O(n²)
- 6. A · O(n)
- 7. C · 品物を分割できる分数ナップサック問題
- 8. B · いいえ。下界はすべての入力にわたる最悪の場合に適用されるのであって、すべての入力に適用されるわけではない
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。