1.やさしい
アルゴリズムとは何ですか?
- A数値を格納するデータ構造
- B問題を解く、明確に定義された手順の有限の列
- C数式を書くために設計されたプログラミング言語
- Dグラフィカルなインターフェースをもつあらゆるコンピュータプログラム
2.やさしい
あるアルゴリズムの実行時間は O(n) です。この増加は何と呼ばれますか?
- A定数
- B対数的
- C2 乗
- D線形
3.やさしい
ある操作が O(1) 時間で動作するとはどういう意味ですか?
- A常にちょうど 1 秒かかる
- B実行時間 1 秒あたりちょうど 1 要素を処理する
- C一度しか実行できない
- D実行時間が入力サイズとともに増加しない
4.ふつう
漸化式 T(n) = 2T(n − 1) + O(1) の解は何ですか?
- AO(n²)
- BO(n)
- CO(2ⁿ)
- DO(n log n)
5.ふつう
素朴な再帰によるフィボナッチ(fib(n) = fib(n−1) + fib(n−2))の時間計算量はどれですか?
- A対数時間
- B指数時間
- C定数時間
- D線形時間
6.ふつう
n 要素の配列に対するマージソートの再帰は何段階になりますか?
- A約 n
- B約 √n
- C約 log₂ n
- D約 n / 2
7.むずかしい
P と NP に関する記述として正しいものはどれですか?
- ANP の問題は高速に検証できない
- BNP は "not polynomial" を意味する
- CP に属するすべての問題は NP にも属する
- DP ≠ NP であることが証明されている
8.むずかしい
動的計画法で解く 0/1 ナップサック問題は O(nW) 時間かかります。これが擬多項式(pseudo-polynomial)と呼ばれるのはなぜですか?
- AW は数値なので、実行時間は W を書くのに使うビット数に対して指数的になるから
- Bn が常に小さいから
- Cアルゴリズムが乱択(randomised)で、実行時間が入力ごとに変わるから
- DW = 0 の場合にしか動作しないから
解答
- 1. B · 問題を解く、明確に定義された手順の有限の列
- 2. D · 線形
- 3. D · 実行時間が入力サイズとともに増加しない
- 4. C · O(2ⁿ)
- 5. B · 指数時間
- 6. C · 約 log₂ n
- 7. C · P に属するすべての問題は NP にも属する
- 8. A · W は数値なので、実行時間は W を書くのに使うビット数に対して指数的になるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。