2008-07-24 shave! snipplr!
■[ruby][algorithm]任意の底を持つ対数

ちょっとしたアプリを作ろうとしていたら、いつの間にかもともと作ろうとしてた言語から離れていて、rubyで書いていた。そこで対数を計算する必要があって、特になにも考えずに書いていたら、なんと、rubyには「任意の底を持つ対数を計算する関数」が用意されていないのですね!
「module Math」を参考にrubyで実装されている関数についてメモしておきます。
任意の底を持つ対数を計算するコード
以下のページを参考にして、テストしてみたらうまくいきました。
# 任意の底 a を持つ x の対数を計算. def logA( x, a ) return (Math.log(x)/Math.log(a)) end p logA( 2, 2 ) # => 1.0 p logA( 4, 2 ) # => 2.0
大学受験とかの時なら一瞬で分かったことだろうに、すっかり忘れていたよ。
まさに、ヤク毛刈り!
他の言語のlog実装
調べているときに見つけたサイトで、いろいろな言語でのlog実装が一覧になっていた。
■[web][プログラミング][情報管理]使えるコード登録サイト「SNIPPLR」

SNIPPLRという、使えるコード片(snippets)を登録しておけるサイトがあります。
ちょっとした便利なコードや、忘れがちなルーチンコードなどを登録しておいて、みんなで共有しよう、という意図のサイト。
今まではたまに参照する程度だったのだけど、今回ユーザー登録して、上記エントリ「任意の底を持つ対数」のコードも登録してみました。→「Logarithm with any base (任意の底を持つ対数) - Ruby - Snipplr Social Snippet Repository」
コメントを書く





