読者です 読者をやめる 読者になる 読者になる

常用対数使わないって言う人は2進数使ってればいいと思う

雑記


log


この関数ほど, 素晴らしい関数はないと思います. expを除いて.

対数は大きな数をイメージするのに重要だし, そもそもグラフのプロットは対数プロットがほとんどです. (というのは言いすぎかもしれないですが, 科学では少なくとも...)



しばしば話題に上がるのが, 底を省略した時にそれを何に取るのか, ということ.

  • 2だよ
  • eだよ
  • 10だよ

個人的にはこんなの何でもよくて, 私の意見はこうです.

そもそも, 対数の底で混乱が生じる状況がありません. 混乱しうると著者が思ったら必ず書いてあります. 例えば"Throughout this paper, we will use base 2 logarithm."みたいに. そうでなければ他の定義から導出されるか, そもそも明らかか. 例えば, 実験結果を対数プロットするようなケースで, つまりは底が10の場合とか. 微分して1/xになってる場合とか. まぁ兎に角, 大体の著者は書いてくれてます.

ですから, 対数の底はコンテキストで必ず決定できると主張します. それは慣習でも気分でも分野の流儀でも時代背景でもありません. その論文, その文章, その授業, その書籍のその章の内容によって, 明示されていない底も決まるのです. さきほど, 微分して1/xにとかなんとか書きましたが, そもそも微分してなくても, そういうコンテキストならば底は決定できるはずです. exp(f(x))という関数があって, さぁ両辺の対数を取りましょうと言った流れなら底はeと取るものです. 例え書いてなかったとしてもそうなのです. これは慣習ですか? いいえ, コンテキストです.

数式だけ見ただけじゃ一意に決定できないのか. その通りです. でもそれが何かの問題を孕んでいますか? 文脈を伴わない数式に価値はありますか? 流儀の相違に起因する解釈の不一致により, 致命的な伝達の齟齬が生じたことはありますか?

対数の底の流儀を主張するということは全くの戯言であり, 単に貴方の読むコンテキストがそういうのが多い, ただそれに過ぎないのです. その事から一般にlogの底を云々いうのは, あまりに感情的で目も当てられません.


私はどれも使います. 言ってしまうと電気系の学生なのですが, データを取れば10の対数を取るし, 微分方程式を解こうとするときにはeを底に取るし, Shannonのエントロピーを計算するときは2を底に取ります. どれも使うし, ノートに注釈なんていちいち書きませんが, これらが混乱することなんて全くありません. 例え広告の裏紙にペンを走らせたような汚い数式でも, 分野があり, 文脈があり, 意味があるのです. 底を何々とするというようなことを書かなくても決定できるのです. 例え他人のノート, 他学部他学科の人間のノートであったとしても.


貴方の価値観を他人に押し付けるのは止めましょう. 見苦しいです.


この世の中には, 常用対数使わないって人がどうやらいらっしゃるようですが, 普段から底2で(或いは底16ですか?)数字扱ってればいいと思います. それで筆算したらいいじゃないですか. それでノートを取ればいいじゃないですか. 下宿の家賃1100001101010000円払えばいいじゃないですか. え, 家賃17桁ですか. リッチですね. ほら, 貴方の大好きな2の対数が取りやすくて非常に便利でしょう?
ここで残念なお知らせですが, 世の中は10進数を基本にして回っています. 我々が幼少時に最初に覚えるのも10進数です. そうじゃないと主張するならば, 私はその人を議論で打ち負かすつもりはありません. そんな人の小学生時代のノートをぜひとも見てみたいものです.




私は数字が好きなので, 例えば電車の中で, 急に2の64乗が10進数で何桁か気になったり*1, 25!って大体10の25乗くらいかなー*2とか妄想する時に, 頭の中で暗算するために底が10の対数は必要です. 常用対数がなくては大きな数のイメージができません. こんな計算したくならないとしても, 実験結果の対数グラフを底2でプロットされたら速攻リジェクトです.



これはまったくどうでもいいことなのですが, ラムダ抽象で話すと(\env -> let log = log_2 in ...)とやってるようなもんです. 貴方のお読みになる文章では, ということはこういうことなのです.

*1:0.3を64倍して大体19なので19桁かなぁ... ってなるのです. 底が2の世界に住んでる人ならば, 65桁ですかそうですか.

*2:5の対数が1-0.3で0.7, 25の対数が1.4, から0.4343引くと0.97... ああ, だいたい1だから25倍してまぁ25桁... 1との差でちょっと減るのと√2πnでちょっと増えるのとでキャンセルして25桁台だろなー...