ぎるばーとのノート

もっともっと遠くへ行きたい 空が広く見える場所まで

2015-01-01から1年間の記事一覧

Stirlingの近似式

Stirlingの近似式は、大きな数の階乗を見積もることができます。 この式は「両辺の比が1に収束する」という意味です。もっと強く、「両辺の差が0に収束する」近似式は次の通り。 ところで、階乗の定義域を実数に広げたものはガンマ関数で、 ガンマ関数の対数…

超越関数?

超越関数にちゃんとした(広く通じる)定義はあるのか、という話。 なんとなく「代数的数係数の多項式で表せない関数」ぐらいに考えていたけれど、そうすると、 は超越関数ということに? それはちょっと違うような気が……。 日本語版ウィキペディアから調べ…

GCD(0, 0) = ?

前回わざと触れなかったところ。 最大公約数は普通正の数に対して考えますが、実は片方が0でもOKです。 「すべての整数は0の約数(0を割り切る)」と考えれば、0でないnと0の最大公約数はnになります。 では、両方とも0の場合はどうすればいいでしょうか? …

Binary GCD

GCDは最大公約数。計算方法としてはユークリッドの互除法が有名です。 別なやり方もあって、例えばBinary GCDアルゴリズムなんかおもしろいと思うのですが、なぜか日本語での解説が少ない……。 なら自分で書いて残しておこうかと思ったり。 Binary GCDアルゴ…

罠が潜んでいる!

ワンライナーの陥穽。 剰余(n rem m)演算とモジュロ(n mod m)演算はnが負のとき結果が違ってきます。端的に言うとモジュロ演算で結果が負の数になることはありません。(詳細は英語版ウィキペディアのモジュロ演算。) 例を挙げた方がいいか……。 n -7 -6…

log2(x)

JavaのMathクラスにはlog2(x)関数が見当たりません。 他のプログラミング言語でもlog2(x)がない場合には役立つ話かも……? さて、下のやり方で何か問題があるでしょうか? Math.log(x) / Math.log(2) 対数の底の変換は、 なので数学的には自然というか素朴な…

魔王も現れない

おお、放置もいいところだ。そろそろ再開していきたいなー。 以前と方向性をチェンジしてみようと思っています。プログラミング関連の記事とか、基本的なアルゴリズムの解説なんかをやっていこうかと。 このところ、ちょっと、体調や精神自体は改善しつつも…