exp(pi * sqrt(n))が整数に近くなるnを探す
Posted feedbacks - Ruby
素直にbigdecimalを使って。
see: Rubyリファレンスマニュアル - bigdecimal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | require "bigdecimal"
require "bigdecimal/math.rb"
include BigMath
def exp_pi_sqrt(x)
tmp = exp(PI(30) * sqrt(BigDecimal(x.to_s), 30), 30)
err = BigDecimal 0.0001.to_s
if (tmp > (tmp.floor - err)) and (tmp < (tmp.floor + err))
print "#{x} #{tmp.to_s("F")}\n"
elsif (tmp > (tmp.ceil - err)) and (tmp < (tmp.ceil + err))
print "#{x} #{tmp.to_s("F")}\n"
end
end
=begin
for i in 1 .. 200
exp_pi_sqrt i
end
=end
|



herumi
#3416()
Rating0/2=0.00
Pythonで34行のスクリプトを書いて得られた出力の例が下のようになります。
この問題は光成さんに教えて頂いた e^{π*sqrt{163}}≒26253741640768744 が元になっています。ご協力ありがとうございました。[ reply ]