Log of ROYGB

はてなダイアリーが廃止されるので、引っ越しました。

Logに関して

http://materia.jp/blog/20070901.html#p04の「ざっと計算する」で取り上げられていた人力検索はてなの質問http://q.hatena.ne.jp/1188620855の「log2 50 ※底の変数 答えはいくつになりますか? 過程も教えてください - 人力検索はてな」に関して。本日の記録つまりログはLogに関してということになります。

まず、Logとは何かについて。これは指数を利用した数の表記方法です。指数というのは10の2乗とかそういうもの。ここでは10の2乗を10~2のように書きます。10の2乗は10×10で100になります。
Logというのはこれを逆にしたものです。10を底とするLogの100が幾つになるかというと2です。
なぜ、Logというものが使われるかというと、計算を楽にするためです。指数の計算では掛け算を足し算に、割り算を引き算にすることができます。10の2乗と10の3乗を掛け合わせた結果は、10の(2+3)乗と同じです。数式で書くと次の通りです。

10^2×10^3 = 10^(2+3) = 10^5
100×1000 = 100000

ただし、掛け算を指数の足し算にするためには10の何乗のように、何乗のもとになる数が同じでなくてはいけません。Logというのは、数を10の何乗のような形で表記する方法として使われます。別に10の何乗でなくても、2の何乗とか3の何乗でも同じことがいえます。

質問のlog2 50は、2を何乗したら50になるかを計算した値です。

概算についてはhttp://materia.jp/blog/20070901.html#p04ですでに書かれていますが、2を何乗したら50を超えるかを考えていきます。2の5乗は32なので、50よりは小さく、2の6乗は64なので50よりも大きくなります。
つまり
log_2 32 = 5
log_2 64 = 6
なので、50は32よりも大きく、64よりも小さいことからlog_2 50は5よりも大きく6よりも小さくなるというわけです。

小数点いかをどうやって計算するかというと、指数を使います。50の10乗が2の何乗と何乗の間にあるのかを計算すると小数点以下第1位まで求まります。

50^10 = 97656250000000000

2^56 = 72057594037927936
2^57 = 144116188075855872
であることから
56 < log_2 50^10 < 57
となります。ここで、指数の計算で冪乗が掛け算に、冪乗根が割り算になることを使います。
つまり
5.6 < log_2 50 < 5.7
となるわけです。これをどんどん進めていけば、小数点以下何位まででも計算できます。しかし、いちいち計算しているとすごく大変です。あらかじめ計算した結果が書いてある対数表というものが世の中にはあって、それを利用することで話は簡単になります。

その他、対数を利用したものとして計算尺やアナログコンピュータがあります。どちらも対数変換後に足し算や引き算をすることで、掛け算や割り算を簡単に行うことができます。ただ、どちらも現在は殆ど使われていないのが何とも。
他に対数に関連したもので身近なものというと、数の桁数があります。log_2 50が5より大きく6よりも小さいということから、50を二進数表記した場合の桁数が6桁であることがわかります。

(9月2日追記)計算に間違いがあったので修正しました。
(9月3日追記)まだ間違いがあったので修正しました。コメントでの指摘ありがとうございました。