大きな数の扱い

非常に大きい数値を扱いたい。javaの基本データ型だと、たとえば

  • int
    • 32ビット 
    • 符号つき整数,-2147483648〜2147483647 (約2.1 x 10^{9} 21億)
  • long
    • 64ビット 
    • 符号つき整数,-9223372036854775808〜9223372036854775807(約9.2 x 10^{18})
  • リスト表示
    • 例えば
      • 9x10^{30} + 8x10^{29} + 7x10^{28} + ... + 1x10^{1} + 0x10^{0} + 1x10^{19} + ... + 9x10^{11} + 8x10^{10} + ... + 0x10^{2} + 1x10^{1} + 2
    • この桁数の数値を指定するには、31個の0...9の数値と、10進法であることを示す、10という数値である
    • リスト表示された数は、整数型データ型に戻せる範囲であればHoner's ruleとかで戻せばよし、整数型に戻さずにリスト表示型の中で演算するならば、リスト表示の多項式加算・多項式乗算など、『閉じた世界』で処理をする
  • 文字列表示
    • "987654321012345678987654321012"という31個の数値の文字列だとする