[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:3546

From: kouyataifu4 <kouyataifu4@g...>
Date: Sun, 17 Feb 2013 10:16:57 +0900
Subject: [ruby-reference-manual:3546] Re: [るりまプロジェクト - Bug #7863][Open] 組み込みライブラリの Random.new のサンプルコードの Random#integer で NoMethodError

kouyaです。

2013年2月16日 20:30 myokoym (Masafumi Yokoyama) <redmine@r...>:
>

> ----------------------------------------
> Bug #7863: 組み込みライブラリの Random.new のサンプルコードの Random#integer で NoMethodError

> Random.new のサンプルコードで Random#integer が使われているのですが、
> ruby-1.9.3-p385で動かしてみたところ NoMethodError が発生しました。
>
> おそらく Random#rand が正しいと思いますので、パッチを添付します。
>

パッチありがとうございます。サンプルコードの動作実行を忘れてたのかもしれません。

>

調べてみたら、ruby-1.9.3-p125のソースコードの中に、
/*
 * call-seq: Random.new([seed]) -> prng
 *
 * Creates new Mersenne Twister based pseudorandom number generator with
 * seed.  When the argument seed is omitted, the generator is initialized
 * with Random.new_seed.
 *
 * The argument seed is used to ensure repeatable sequences of random numbers
 * between different runs of the program.
 *
 *     prng = Random.new(1234)
 *     [ prng.rand, prng.rand ]   #=> [0.191519450378892, 0.622108771039832]
 *     [ prng.integer(10), prng.integer(1000) ]  #=> [4, 664]
 *     prng = Random.new(1234)
 *     [ prng.rand, prng.rand ]   #=> [0.191519450378892, 0.622108771039832]
 */

と書いてあり、これをコピペした事が原因なのかもしれません。
確認したところ、最新版のruby-trunkでは本記載が消えているようです。

> ただ、Random.newのサンプルコードにこの行がある意図がよくわかりませんでした。
> 「種が同じなら同じ乱数列を発生することができる。」の例であれば、同じ行を後ろにも追加するべきだと思います。
> もしくは、引数を取らない Random#rand のみで十分と考えて、この行は削除してもよいのかなと思いました。
>

同意します。というわけで同じ行を追加する方向にしたいと思います。

>
> # 参考までに、私の環境では引数を取らない Random#rand の結果がサンプルよりも1桁多く表示されました。
> #=> [0.1915194503788923, 0.6221087710398319]
>
>

私も1桁多かったです。
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]


-- 
kouya

--
ML: ruby-reference-manual@m...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      3545 2013-02-16 12:30 [redmine@r...        ] [るりまプロジェクト - Bug #7863][Open] 組み込みライブラリの Random.new のサンプルコードの Random#integer で NoMethodError
->    3546 2013-02-17 02:16 ┣[kouyataifu4@g...    ]                                       
      3547 2013-02-17 05:00 ┗[redmine@r...        ] [るりまプロジェクト - Bug #7863][Closed] 組み込みライブラリの Random.new のサンプルコードの Random#integer で NoMethodError