タグ

ブックマーク / soukouki.hatenablog.jp (1)

  • Rubyで大きな値(数億桁)を扱うときのメモ - soukouki’s diary

    ある日。フィボナッチ数列の10億万番目とその前2つの値を計算して、割って黄金比を求めているときのメモ。 nilを代入しないとGCは片付けてくれない まぁ、メモリがそこまで逼迫することはあまりないと思うけど。 割り算ができない(浮動小数点数にできない) 浮動小数点数に直すとInfinity行っちゃいます。 最初NaNを見た時は「えっ」ってなります。 小数を使いたい時は割られる側に大きな数を掛けておきましょう。 Integer#** の右側に大きな値を置けない よく引っかかるやつ。 10**10_0000_0000 # なら ([10**(10_0000_0000/100)]*100).inject(:*) # 100の部分は適当に割り切れる数字で 計算に結構な時間がかかるのであれ( 右側の値は100万くらいなら大丈夫っぽい。 Integer(Bignum)#to_s でエラーが出る to_s

    Rubyで大きな値(数億桁)を扱うときのメモ - soukouki’s diary
  • 1