From: Urabe Shyouhei Date: 2011-04-25T12:03:36+09:00 Subject: [ruby-dev:43441] Re: [ruby-cvs:38520] Ruby:r31340 (trunk): * random.c (random_s_rand, Init_Random): Random.rand should behave as 卜部です。 (04/25/2011 11:38 AM), Kenta Murata wrote: >> かなり昔に、たしかakrさんに、「浮動小数点数は数直線の中で一様に分布しているわ >> けではないので、その任意区間の乱数の分布は必ずしも一様にはならないのではない >> か?」というような内容のことを言われたような微かな記憶がある関係で、 > > その議論については私も覚えています。 > 実はきのう patch を書くまで浮動小数点数を受け付けてる事に気付いてなかったんですが、 > 調べてみると 2009 年から実装されていました。 そうなのかー >> rangeの端が >> Floatの場合はどうなるんだろうなーと思ってたんですが、んー、実装を読むと、 >> genrand_realから0.5引いて0の回りに集めてから左右に伸ばして中央を横にずらす感じ? >> >> まあ素人目には大丈夫そうにも思いますが、どうなんだろう。 > > 最後に中央をずらしたときに一様分布ではなくなる可能性があります。 > (Range の beg と end がそれぞれ異なるスケールを持つ場合)。 気になってるのは例えば Random.new.rand(1e-300 .. 1e300) とかやったときに0.0が出現する可能性があったりする? しないなら安心なんですがさ すがに範囲外が出るのは嫌かなあと...そうでもないんですかね。 # 勘違いか? 出ないのか?