class Random
クラスの継承リスト: Random < Object < Kernel < BasicObject
要約
MT19937に基づく疑似乱数生成器を提供するクラスです。
参考
オリジナル版 http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html
特異メソッド
new(seed = Random.new_seed) -> Random
-
メルセンヌ・ツイスタに基づく疑似乱数発生装置オブジェクトを作ります。 引数が省略された場合は、Random.new_seedの値を使用します。
- [PARAM] seed:
- 疑似乱数生成器の種を整数で指定します。
動作例: 種が同じなら同じ乱数列を発生することができる。
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]
new_seed -> Integer
-
適切な乱数の種を返します。
使用例:
p Random.new_seed # => 184271600931914695177248627591520900872
rand(max=0) -> Float
-
疑似乱数を発生させます。
引数が省略された時、もしくは整数の"0"、または nilが指定された場合は0以上1未満の実数を返します。 負の引数が指定された場合は、maxを正の整数に変換し、0以上変換後の整数未満の整数を返します。
- [PARAM] max:
- 疑似乱数生成器の最大値を指定します。
- [RETURN]
- max を超えない乱数を返します。
使用例:
srand 1234 # 乱数の種を設定する。 p [ Random.rand, Random.rand ] #=> [0.191519450163469, 0.49766366626136] p Random.rand(1000) # => 204 0.upto(10){ # 3 を超えない整数を返します。 p Random.rand(-3.14) }
srand(number=0) -> Integer
-
疑似乱数生成器の種を設定します。
number が0もしくは省略された場合は、 プロセスID、現在時間等を組み合わせた適切な値が種として使用されます。
- [PARAM] number:
- 疑似乱数発生器の種を整数で指定します。
- [RETURN]
- 設定される前の種を返します。
動作例:
p Random.srand 1 p Random.srand 1234 # => 1 p [ Random.rand, Random.rand ] #=> [0.191519450163469, 0.49766366626136]
インスタンスメソッド
self == other -> bool
-
乱数生成器が等しい状態であるならばtrue を返します。
- [PARAM] other:
- 比較対象の乱数生成器
動作例:
r1 = Random.new(1) r2 = Random.new(1) p r1 == r2 # => true r2.rand p r1 == r2 # => false r1.rand p r1 == r2 # => true
bytes(size) -> String
-
ランダムなバイナリー文字列を返します。結果の文字列のサイズを指定できます。
- [PARAM] size:
- 結果の文字列のサイズを指定します。
動作例:
r2 = Random.new(1) p r2.bytes(10) # => "%\xF4\xC1j\xEB\x80G\xFF\x8C/"
marshal_dump -> Array
-
Random#marshal_load で復元可能な配列を返します。
動作例:
r1 = Random.new(1) a1 = r1.marshal_dump r2 = Random.new(3) p r1 == r2 # => false r3 = r2.marshal_load(a1) p r1 == r2 # => true p r1 == r3 # => true
marshal_load(array) -> Random
-
Random#marshal_dump で得られた配列を基に、Randomオブジェクトを復元します。
- [PARAM] array:
- 三要素以下からなる配列を指定します。 何を指定するかはRandom#marshal_dumpを参考にしてください。
- [EXCEPTION] ArgumentError:
- array が3より大きい場合に発生します。
動作例:
r1 = Random.new(1) a1 = r1.marshal_dump r2 = Random.new(3) r3 = r2.marshal_load(a1) p r1 == r2 # => true p r1 == r3 # => true
[SEE_ALSO] Random#marshal_dump
rand -> Float
-
浮動小数点数を返します。
動作例:
p Random.new(3).rand # => 0.5507979025745755
rand(arg) -> Integer
-
arg が IntegerもしくはBignumの場合は、arg 未満の整数を返します。 Rangeオブジェクトの場合はrange.member?(number) == trueになるような数値を返します。
- [PARAM] arg:
- 整数もしくはRangeオブジェクトを指定します。
動作例:
prng = Random.new(1234)
#[5, 6, 7, 8, 9]のどれか
p prng.rand(5..9) # => 8
#[5, 6, 7, 8]のどれか
p prng.rand(5...9) # => 7
#5.0 からの9.0 の間の数値9.0, 9.0を含む。
p prng.rand(5.0..9.0) # => 8.271353771386416
#5.0 からの9.0 の間の数値9.0, 9.0を含まない。
p prng.rand(5.0...9.0) # => 7.448447578709083
- [EXCEPTION] ArgumentError:
- 引数の数が0または1では無い時、引数に負の数値を与えた時に発生する。
seed -> Integer
-
現在の乱数の種を返します。
動作例:
p Random.new(3).seed # => 3
private特異メソッド
left -> Integer
-
C言語レベルで定義されている構造体MTの静的変数default_randの変数leftを参照します。詳しくはrandom.c を参照してください。
state -> Integer
-
C言語レベルで定義されている構造体MTの静的変数default_randの状態を参照します。詳しくはrandom.c を参照してください。
privateメソッド
left -> Integer
-
C言語レベルで定義されている構造体MTの変数leftを参照します。詳しくはrandom.c を参照してください。
state -> Integer
-
C言語レベルで定義されている構造体MTの状態を参照します。詳しくはrandom.c を参照してください。
- Ruby 1.9.3 リファレンスマニュアル
- はじめに
- コマンド
- Rubyの起動
- 環境変数
- Ruby言語仕様
- 組み込みライブラリ
- クラス
- Array
- BasicObject
- Bignum
- Binding
- Class
- Complex
- Data
- Dir
- Encoding
- Encoding::
Converter - Enumerator
- FalseClass
- Fiber
- File
- File::Stat
- Fixnum
- Float
- Hash
- IO
- Integer
- MatchData
- Method
- Module
- Mutex
- NilClass
- Numeric
- Object
- Proc
- Process::Status
- Random
- Range
- Rational
- Regexp
- String
- Struct
- Struct::Tms
- Symbol
- Thread
- ThreadGroup
- Time
- TrueClass
- UnboundMethod
- モジュール
- オブジェクト
- 例外クラス
- 組み込み関数
(Kernelモジュール関数) - 組み込み定数
(Kernel定数) - 組み込み特殊変数
- クラス
- 標準添付ライブラリ
- pack テンプレート文字列
- sprintf フォーマット
- Ruby用語集
- Rubyで使われる記号の意味
- 疑似BNFによるRubyの文法
- バージョン情報 / このリファレンスについて