dポイントプレゼントキャンペーン実施中!

rubyでout of float range と算出されました。
これは計算の桁が大きすぎるためなのでしょうか。
ルビーは計算の桁がメモリーの許す限り無限と聞いたのですが。
どういう意味なのか教えていただきたいです。

A 回答 (2件)

>これは計算の桁が大きすぎるためなのでしょうか。



そんなところです。
例えば、
a=1E1000 # 10の1000乗
とすると、
warning: Float 1e1000 out of range
という警告が出て、a の値は Infinity (無限大) になります。

>ルビーは計算の桁がメモリーの許す限り無限と聞いたのですが。

違います。きっと、聞き間違い、読み間違いですね。

整数の計算はメモリーの許す限り無限桁です。
通常の浮動小数点数の値は普通の他の言語と同じ。
BigDecimalライブラリを使うと、任意の桁数で浮動小数点数計算できます。
    • good
    • 0

http://oshiete1.goo.ne.jp/qa5646276.html

>rubyの整数

です。Floatは無限ではないです。
コンビネーションの計算ということだったので、整数演算のみが必要なので、紹介いたしました。


なにやら、確率計算をしているようですが
nCm * (p^m) * ((p-1)^(n-m))
みたいな計算を、この式通りに計算しようとしてませんか?

コンピュータで計算するときは、公式のまま計算するのではなく、式を変形して、コンピュータが計算しやすいようにすることも大切です。

参考URL:http://www.ruby-lang.org/ja/man/html/Rational.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!