HOME»応用情報技術者試験掲示板»平成22年春期午後問2  設問4  (1)について
投稿する

[3704] 平成22年春期午後問2  設問4  (1)について

 ななしさん(No.1) 
https://www.ap-siken.com/kakomon/22_haru/pm02.html
設問4 (1)について
オについて
計算量を求める問題ですが、
O(n - index)にならない理由がわかりません。
解説には、時間計算量を求める場合、最大の計算量を求めるとありました。その場合、O(n) になるのはわかるのですが...
「末尾へ移動する要素より後のすべての要素」の数は「n-index」個になると思います。
最大の計算量を求めることが暗黙の了解なのでしょうか。
もしくは、indexは設問で定義されていない変数なので、使ってはいけないのでしょうか。

カについて
O(1)になるとのことですが、図6の一連の処理の流れを指して「1回」の認識で合っているでしょうか。
(計算量=繰り返し処理の回数?繰り返し処理がないため1回?)
2022.09.21 14:17
jjon-comさん(No.2) 
AP プラチナマイスター
ja.wikipedia の「ランダウの記号」の「概要」には次の解説があります。

> たとえば二次関数 3x^2 + 4x + 10 が 
> x を限りなく大きくしたときどのように増大するかを考えると、
> 変数 x が 2 より大きければ第一項 3x^2 が他の項より大きく、
> さらに大きくなるほど支配的になることがわかる。
> 漸近解析をする上では定数倍のような詳細は必要としないことが多く、
> O-記法を用いると、必要な情報を
> 3x^2 + 4x + 10 = O(x^2) と端的に表すことができる。

例として,配列の個数がNであり,あるプログラムの実行時間が次の式で求められるとします。

1,000×Nの2乗 + 10,000×N - index + 100,000(※ indexは定数)

ビッグ・オー記法では,変数 N に10だの100だの小さな数を想定せず,

> x(この例ではN)を限りなく大きくしたときどのように増大するかを考え

ます。Nにギガ(10億),テラ(1兆)レベルの値を想定した場合,
-indexは無視できますし,+100,000も無視できますし,10,000×Nも無視できます。

1,000×Nの2乗 における ×1,000も

> 定数倍のような詳細は必要としないことが多く、

無視できます。残ったのは Nの2乗のみ。よって
オーダーは O(Nの2乗)「計算量は Nの2乗 に比例して増加する」となります。
2022.09.21 14:39
 ななしさん(No.3) 
jjon-comさん
詳細の説明ありがとうございます。疑問が解決しました。

ランダウの記号の解説も見てきました。
データ量に計算量が依存しない場合はO(1)と書くのですね。
極限を考えるときのように、一番次元の大きい変数に着目するものと理解しました。

どうもありがとうございました。
2022.09.21 15:21

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop