プロが教える店舗&オフィスのセキュリティ対策術

対数logについて
基本情報処理技術者試験の勉強をしているのですが、
オーダ記法のところで、よく使われる表現として
O(1) O(log n) O(n) O(n log n) O(n^2)
←計算時間小 計算時間大→
という五つの表現が紹介されているのですが、
このうち対数logを用いた物が理解できません。
例えば0(n)は、データ量nが2倍に増えれば計算時間も2倍になるということですよね。
しかしO(log n)だとどういう考え方になるのかわかりません。
対数についてもまだ理解できていないので、
対数のことから教えていただけないでしょうか。回答お待ちしてます。

A 回答 (2件)

基本情報技術者試験で出題される対数であるなら,


常用対数(底が10である対数)ではなく,底が2である対数でしょう。
O(log n),O(n log n) のように底を省略した表記は誤解を生みます。
O(log2N),O(N×log2N) のように表記した方が良いです。
(nが底でないことを分かりやすくするため,大文字かつ全角文字でNと書きました)

x=log2N,とは,2のx乗=N,と同じ意味です。
http://www.orcaland.gr.jp/kaleido/juken/taisu.html
http://www.shunzei.com/lecture/stepup/log.html

例えばO(log2N)とは,データ量Nが1024倍に増えても計算時間は10倍,データ量が100万倍に増えても計算時間は20倍,ということです。
(2の10乗=1024,2の20乗≒1Mなので)
    • good
    • 4

通常使うのは常用対数なのでそれでお答えします


10を0乗すれば1になります
10を1乗すれば10
10を2乗すれば100
このようにある数nを表すのに10を何乗すればいいかを10を底としたnの対数といいます
単にnの対数といいます
たとえば2の対数は0.3010です
10を0.3010乗すると2になります
実際には端数が沢山付くのですが実用上は0.3010
対数の良いところはかけ算を足し算に置き換えられることです
10の対数は1です
100の対数は2です
10×10は1+1に置き換えることが出来ます
これは複雑な計算に威力を発揮します
計算尺の目盛りは対数目盛になっているのです
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございます。
O(log n)の考え方についてもよろしければ教えていただけないでしょうか。

お礼日時:2010/06/21 21:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!