1.やさしい
増加の上界(upper bound)を表す記法はどれですか?
- ALittle omega
- BBig Theta
- CBig Omega
- DBig O
2.やさしい
n 個の数からなる未ソートの配列で最大値を見つける時間計算量は何ですか?
- AO(1)
- BO(n)
- CO(n log n)
- DO(log n)
3.やさしい
f(n) = Θ(g(n)) はどういう意味ですか?
- Af は g より真に速く増加する
- Bすべての n について f は常に g より小さいので、g は上からは抑えるが下からは決して抑えない
- Cf は g と同じ速さで増加し、上下から g の定数倍で抑えられる
- Df は g より真に遅く増加する
4.ふつう
1、3、4 の硬貨で金額 6 をつくるとき、貪欲な「最大の硬貨から」方式は最適解と比べて何枚の硬貨を使いますか?
- A貪欲法は 3 枚、最適解は 2 枚
- B貪欲法は 2 枚、最適解は 2 枚
- C貪欲法は 3 枚、最適解は 3 枚
- D貪欲法は 4 枚、最適解は 3 枚
5.ふつう
動的計画法(dynamic programming)が有効なのは、問題が次の性質を持つときです。
- Aループが一つだけ
- Bランダムな入力のみ
- C部分問題がまったくないので、1 ステップで解ける
- D重複する部分問題と最適部分構造
6.ふつう
満杯になると容量を2倍にする動的配列に要素を追加する操作の償却(amortised)時間計算量は何ですか?
- AO(n)
- BO(log n)
- CO(n²)
- DO(1)
7.むずかしい
ある NP 完全問題に対する多項式時間アルゴリズムを誰かが見つけたら、何が導かれますか?
- ANP のすべての問題が多項式時間で解けることになり、P = NP となる
- Bすべての指数時間アルゴリズムがただちに線形時間で動くようになる
- C停止問題が決定可能になる
- Dその 1 つの問題だけが P に移る
8.むずかしい
for i = 1 to n: for (j = i; j ≤ n; j = j + i) do O(1) work の時間計算量は何ですか?
- AO(n²)
- BO(n log n)
- CO(n √n)
- DO(n)
解答
- 1. D · Big O
- 2. B · O(n)
- 3. C · f は g と同じ速さで増加し、上下から g の定数倍で抑えられる
- 4. A · 貪欲法は 3 枚、最適解は 2 枚
- 5. D · 重複する部分問題と最適部分構造
- 6. D · O(1)
- 7. A · NP のすべての問題が多項式時間で解けることになり、P = NP となる
- 8. B · O(n log n)
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。