ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

常用対数だけでさまざまな底の対数を計算する。

最近、矢沢久雄氏の名著「情報はなぜビットなのか」を読んでいたら、
Log2(N)の説明があり、Log2(N)をMS電卓で出してみましょうということで、実際にやっていました。

しかし、MS電卓では自然対数しか出すことが出来ないのです!

それは前から知っていたので、この人はどうやってLog2(N)を出そうと言うのか、とても疑問に思いました。

それで、やり方を書いていたのでみたらビックリ。

Log2(N) = Log10(N) / Log10(2)

だと言うのです!

つまり、Nの常用対数を2の常用対数で割ればLog2(N)になるということです。

この本では、別にこの法則を解説したわけではなく、
これでLog2(N)が出せるよ~だけ書いていたのですが、やはり説明が足りない!

ホンマでっか~?と思い、Loga(N)が出せる電卓で実験をしてみました。

…本当でしたね。

Nがなんであれ、上記の方法を使えばLog2(N)が出せます。

また、底も自由に変えられるようで、
Log3(N)を出したければ、割り算のところをLog10(3)にすればいいようです。

さらには、使うのは常用対数である必要はなく、
底を全て同じにするなら、なんでもOKでした。




こりゃマジカルじゃあ!

これはマジカルではなくて、対数法則の一つだそうです。
ではどんな法則か見てみましょう。


対数法則によって、

Loga(M) = Logb(M) ÷ Logb(a)

となります。

今のLog2(N)の出し方も、これを利用していたんですね。


イメージとしては、

底よりNが大きかったら答えが1以上になって、
底よりNが小さかったら答えが1未満になるから、

その数値でLog(N)を割れば調度よくバランスがとれるんじゃないかというイメージじゃないでしょうか。


…自分でも意味分からん!

というわけで、証明してもらいます。
いいのをグクりましたぜ。

対数法則 (サイト「微分積分いい気分」から)
http://www.geocities.jp/phaosmath/elmtrasfn/explog/loglaw.htm




はい、というわけでリンク先を見て理解不能だった訳ですが、
証明はもういいです。どうでもいいです。


とにかく、この法則を覚えていたら
常用対数しか出せない電卓でも、自然対数しか出せない電卓でも、
自由自在な対数を出すことが可能になるので、ぜひ頭にいれておいてください。

tag:

コメント

コメントの投稿

トラックバック

トラックバック URL
http://cyberboy6.blog.fc2.com/tb.php/210-040f0566
この記事にトラックバックする(FC2ブログユーザー)

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。