1.やさしい
アルゴリズムとは何ですか?
- A問題を解く、明確に定義された手順の有限の列
- Bグラフィカルなインターフェースをもつあらゆるコンピュータプログラム
- C数式を書くために設計されたプログラミング言語
- D数値を格納するデータ構造
2.やさしい
ある操作が O(1) 時間で動作するとはどういう意味ですか?
- A常にちょうど 1 秒かかる
- B一度しか実行できない
- C実行時間が入力サイズとともに増加しない
- D実行時間 1 秒あたりちょうど 1 要素を処理する
3.やさしい
隣接リストで格納されたグラフに対する深さ優先探索の時間計算量は何ですか?
- AO(V + E)
- BO(V × E)
- CO(E log V)
- DO(V²)
4.ふつう
ソート済み配列で、両端から 1 つずつポインタを内側へ動かして、和が目標値になる 2 つの要素を探します。時間計算量は何ですか?
- AO(log n)
- BO(n log n)
- CO(n²)
- DO(n)
5.ふつう
ある関数は n 回反復するループを 1 つ実行し、その後別に n 回反復するループをもう 1 つ実行します。時間計算量は何ですか?
- AO(2ⁿ)
- BO(n²)
- CO(log n)
- DO(n)
6.ふつう
漸化式 T(n) = T(n/2) + O(1) の解は何ですか?
- AO(log n)
- BO(n log n)
- CO(n)
- DO(1)
7.むずかしい
動的計画法で解く 0/1 ナップサック問題は O(nW) 時間かかります。これが擬多項式(pseudo-polynomial)と呼ばれるのはなぜですか?
- Aアルゴリズムが乱択(randomised)で、実行時間が入力ごとに変わるから
- BW = 0 の場合にしか動作しないから
- Cn が常に小さいから
- DW は数値なので、実行時間は W を書くのに使うビット数に対して指数的になるから
8.むずかしい
新しい問題 X が NP 困難であることを示すには、何をしなければなりませんか?
- A既知の NP 困難な問題を多項式時間で X に帰着させる
- BX を多項式時間で既知の NP 困難な問題に帰着させる
- CX を多項式時間で検証できることを示す
- DX には小さな入力に対する多項式アルゴリズムがないことを示す
解答
- 1. A · 問題を解く、明確に定義された手順の有限の列
- 2. C · 実行時間が入力サイズとともに増加しない
- 3. A · O(V + E)
- 4. D · O(n)
- 5. D · O(n)
- 6. A · O(log n)
- 7. D · W は数値なので、実行時間は W を書くのに使うビット数に対して指数的になるから
- 8. A · 既知の NP 困難な問題を多項式時間で X に帰着させる
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。