巨大数値の階乗計算速度を計測

巨大数値の階乗計算速度を計測の基本情報から最新動向までをわかりやすく整理しました。

プログラミング言語Pythonにおける標準ライブラリ `math.factorial` は、長年にわたり最適化が重ねられてきた。Python Software Foundation の開発者コミュニティは、巨大な整数の階乗を求める際、単純な乗算ループではなく「Binary Splitting(二分分割法)」や素因数分解を用いた高速アルゴリズムを導入している。

これにより、10万の階乗(100,000!)といった数十万桁に及ぶ巨大な数値であっても、実用的な時間内で正確に算術処理を完了させることができる。実際に現代の標準的クラウド計算環境である Google Colab 上でPythonコードを実行してみよう。

import math import time n = 100000 start_time = time.time() # Python標準の高度に最適化された階乗アルゴリズム result = math.factorial(n) end_time = time.time() digits = len(str(result)) print(f"{n}! の計算時間: {end_time - start_time:.4f} 秒") print(f"結果の桁数: {digits} 桁")

Google Colab のクラウド環境でこのコードを走らせると、10万の階乗(456,574桁)という想像を絶する数値が1秒にも満たない時間で弾き出される。内部で機能する分割統治アルゴリズムが、大きな桁数同士の乗算回数を最小限に抑えているからだ。2026年現在の最新処理系では、さらにマルチスレッド並列化や並列素因数分解を組み合わせた、さらなる超高速化技術が実用段階へと入っている。

田中 結衣

田中 結衣

デジタルマーケティングコンサルタント

グルメと旅を愛するフリーライター。全国各地の隠れた魅力を独自の視点から紹介します。

Share this article
Twitter Facebook Pinterest