コンテンツへスキップ
uencoder

BigInteger

BigInteger は任意精度の整数型であり、固定ワードサイズに制限されず、ネイティブ整数の範囲を超える計算(暗号や組合せ論など)に使われる。

目的

整数演算を 32/64 ビットのオーバーフロー制限から解放し、任意の大きさの数を扱えるようにする。

メカニズム

大きな数の桁(またはリム)を配列に格納し、桁ごとの演算として実装する。乗算は Karatsuba や FFT で高速化される。実装には Java の BigInteger、Python の int(自動的な多倍長整数)、JS の BigInt がある。イミュータブルであり、演算は新しいオブジェクトを返す。

ユースケース

  • RSA の多倍長演算
  • 大きな階乗や組み合わせの計算
  • ファイナンスにおける厳密な計算
  • 数論や素数のリサーチ

例

  • 入力
    2n ** 100n
    Output
    1267650600228229401496703205376n

    JS BigInt

よくあるエラー

Mixing Number and BigInt in JS throws
Use BigInt uniformly or convert explicitly

関連用語

関連ツール

References