Pythonのimport mathでfactorial(階乗)が使えるのですが、その中身はどういうコードになっているのか調べてました。
ローカルの中では、
mathmodule.c
に書かれていました。
githubでソースを見ると・・
cpython\Modules\mathmodule.c
という場所にあります。
n! の計算 factorial は
binary split という計算方法のようです。
http://www.luschny.de/math/factorial/binarysplitfact.html
がオリジナル?
ビットをカウントしている部分の解説
http://www.mwsoft.jp/programming/java/java_lang_integer_bit_count.html
すごいテクい(死語?)んですけど・・・。
勉強になったけど自分では書けないですね〜。
0 件のコメント:
コメントを投稿