BigInteger
BigInteger は任意精度の整数型であり、固定ワードサイズに制限されず、ネイティブ整数の範囲を超える計算(暗号や組合せ論など)に使われる。
目的
整数演算を 32/64 ビットのオーバーフロー制限から解放し、任意の大きさの数を扱えるようにする。
メカニズム
大きな数の桁(またはリム)を配列に格納し、桁ごとの演算として実装する。乗算は Karatsuba や FFT で高速化される。実装には Java の BigInteger、Python の int(自動的な多倍長整数)、JS の BigInt がある。イミュータブルであり、演算は新しいオブジェクトを返す。
ユースケース
- RSA の多倍長演算
- 大きな階乗や組み合わせの計算
- ファイナンスにおける厳密な計算
- 数論や素数のリサーチ
例
- 入力
2n ** 100nOutput1267650600228229401496703205376nJS BigInt
よくあるエラー
- Mixing Number and BigInt in JS throws
- Use BigInt uniformly or convert explicitly