るりまサーチ (Ruby 2.5.0)

最速Rubyリファレンスマニュアル検索!
82件ヒット [1-82件を表示] (0.026秒)

別のキーワード

  1. _builtin rand
  2. random rand
  3. kernel rand
  4. bn rand
  5. openssl rand

検索結果

Random#rand -> Float (63832.0)

一様な擬似乱数を発生させます。

一様な擬似乱数を発生させます。

最初の形式では 0.0 以上 1.0 未満の実数を返します。

二番目の形式では 0 以上 max 未満の数を返します。
max が正の整数なら整数を、正の実数なら実数を返します。
0 や負の数を指定することは出来ません。

三番目の形式では range で指定された範囲の値を返します。
range の始端と終端が共に整数の場合は整数を、少なくとも片方が実数の場合は実数を返します。
rangeが終端を含まない(つまり ... で生成した場合)には終端の値は乱数の範囲から除かれます。
range.end - range.begin が整数を返す場合は rang...

Random#rand(max) -> Integer | Float (63832.0)

一様な擬似乱数を発生させます。

一様な擬似乱数を発生させます。

最初の形式では 0.0 以上 1.0 未満の実数を返します。

二番目の形式では 0 以上 max 未満の数を返します。
max が正の整数なら整数を、正の実数なら実数を返します。
0 や負の数を指定することは出来ません。

三番目の形式では range で指定された範囲の値を返します。
range の始端と終端が共に整数の場合は整数を、少なくとも片方が実数の場合は実数を返します。
rangeが終端を含まない(つまり ... で生成した場合)には終端の値は乱数の範囲から除かれます。
range.end - range.begin が整数を返す場合は rang...

Random#rand(range) -> Integer | Float (63832.0)

一様な擬似乱数を発生させます。

一様な擬似乱数を発生させます。

最初の形式では 0.0 以上 1.0 未満の実数を返します。

二番目の形式では 0 以上 max 未満の数を返します。
max が正の整数なら整数を、正の実数なら実数を返します。
0 や負の数を指定することは出来ません。

三番目の形式では range で指定された範囲の値を返します。
range の始端と終端が共に整数の場合は整数を、少なくとも片方が実数の場合は実数を返します。
rangeが終端を含まない(つまり ... で生成した場合)には終端の値は乱数の範囲から除かれます。
range.end - range.begin が整数を返す場合は rang...

Random.rand -> Float (63454.0)

擬似乱数を発生させます。

擬似乱数を発生させます。

Random::DEFAULT.rand と同じです。
Random#rand を参照してください。

擬似乱数生成器が Kernel.#rand と共通なため Kernel.#srand などの影響を受けます。

@param max 乱数値の上限を正の整数または実数で指定します。
@param range 発生させる乱数値の範囲を Range オブジェクトで指定します。
range の境界は数値でなければなりません。

@raise Errno::EDOM rand(1..Float::INFINITY) などのように範囲に問題が...

Random.rand(max) -> Integer | Float (63454.0)

擬似乱数を発生させます。

擬似乱数を発生させます。

Random::DEFAULT.rand と同じです。
Random#rand を参照してください。

擬似乱数生成器が Kernel.#rand と共通なため Kernel.#srand などの影響を受けます。

@param max 乱数値の上限を正の整数または実数で指定します。
@param range 発生させる乱数値の範囲を Range オブジェクトで指定します。
range の境界は数値でなければなりません。

@raise Errno::EDOM rand(1..Float::INFINITY) などのように範囲に問題が...

絞り込み条件を変える

Random.rand(range) -> Integer | Float (63454.0)

擬似乱数を発生させます。

擬似乱数を発生させます。

Random::DEFAULT.rand と同じです。
Random#rand を参照してください。

擬似乱数生成器が Kernel.#rand と共通なため Kernel.#srand などの影響を受けます。

@param max 乱数値の上限を正の整数または実数で指定します。
@param range 発生させる乱数値の範囲を Range オブジェクトで指定します。
range の境界は数値でなければなりません。

@raise Errno::EDOM rand(1..Float::INFINITY) などのように範囲に問題が...

Kernel.#rand(max = 0) -> Integer | Float (54523.0)

擬似乱数を発生させます。

擬似乱数を発生させます。

最初の形式では
max が 0 の場合は 0.0 以上 1.0 未満の実数を、正の整数の場合は 0 以上 max 未満の整数を返します。
それ以外の値を指定した場合は max.to_int の絶対値が指定されたものとして扱います。

二番目の形式では range で指定された範囲の値を返します。
range の始端と終端が共に整数の場合は整数を、少なくとも片方が実数の場合は実数を返します。
range に含まれる数が無い場合は nil を返します。

まだ Kernel.#srand が呼ばれていなければ自動的に呼び出します。

擬似乱数生成器として Random...

Kernel.#rand(range) -> Integer | Float | nil (54523.0)

擬似乱数を発生させます。

擬似乱数を発生させます。

最初の形式では
max が 0 の場合は 0.0 以上 1.0 未満の実数を、正の整数の場合は 0 以上 max 未満の整数を返します。
それ以外の値を指定した場合は max.to_int の絶対値が指定されたものとして扱います。

二番目の形式では range で指定された範囲の値を返します。
range の始端と終端が共に整数の場合は整数を、少なくとも片方が実数の場合は実数を返します。
range に含まれる数が無い場合は nil を返します。

まだ Kernel.#srand が呼ばれていなければ自動的に呼び出します。

擬似乱数生成器として Random...

OpenSSL::BN.rand(bits, fill=0, odd=false) -> OpenSSL::BN (54340.0)

暗号論的に強い擬似乱数を生成し、返します。

暗号論的に強い擬似乱数を生成し、返します。

bits ビットの長さの正の整数を生成します。

fill が -1 なら、生成させる数の最上位ビットが
0である場合を許容します。fill が 0 なら、
生成させる数の最上位ビットは1にセットされます、
つまり必ず bits ビットの整数となります。
fill が1の場合は、上位2ビットが1にセットされます。

odd が真なら、生成される整数は奇数のみとなります。

@param bits 発生させる数のビット数
@param fill 上位ビットの性質を決める整数
@param odd 真なら発生させる数は奇数のみとなる
@raise Op...

Random.srand -> Integer (27319.0)

デフォルトの擬似乱数生成器の種を設定し、古い種を返します。 Kernel.#srand と同じです。

デフォルトの擬似乱数生成器の種を設定し、古い種を返します。
Kernel.#srand と同じです。

@param number 擬似乱数発生器の種を整数で指定します。


@see Kernel.#rand, Random::DEFAULT

絞り込み条件を変える

Random.srand(number) -> Integer (27319.0)

デフォルトの擬似乱数生成器の種を設定し、古い種を返します。 Kernel.#srand と同じです。

デフォルトの擬似乱数生成器の種を設定し、古い種を返します。
Kernel.#srand と同じです。

@param number 擬似乱数発生器の種を整数で指定します。


@see Kernel.#rand, Random::DEFAULT

OpenSSL::Random.#load_random_file(filename) -> true (27301.0)

ファイルを読み込み、その内容をエントロピー源として 乱数生成器に渡します。

ファイルを読み込み、その内容をエントロピー源として
乱数生成器に渡します。

エントロピーの推定量はファイルのバイト数と同じであると見なします。

OpenSSL::Random.seed(File.read(filename)) と同じです。

@param filename 読み込むファイル名
@raise OpenSSL::Random::RandomError ファイルの読み込みに失敗した場合に発生します
@raise OpenSSL::Random::RandomError

OpenSSL::Random.#random_add(str, entropy) -> self (27301.0)

乱数生成器にエントロピーを追加します。

乱数生成器にエントロピーを追加します。

entropy には str が持っているエントロピーの予測値(の下限)を
バイト単位で渡します。

@param str 予測不可能な内容の文字列
@param entropy str が持っているエントロピーの予測値(バイト単位)の浮動小数点数

OpenSSL::Random.#random_bytes(len) -> String (27301.0)

暗号論的な予測不可能性を持つ乱数生成器によって、 len バイトの ランダムなバイト列を返します。

暗号論的な予測不可能性を持つ乱数生成器によって、 len バイトの
ランダムなバイト列を返します。

@param len 必要なランダムバイト列の長さ

OpenSSL::Random.#write_random_file(filename) -> true (27301.0)

乱数生成器で生成された 1024 バイトのランダムなバイト列を ファイルに書き込みます。

乱数生成器で生成された 1024 バイトのランダムなバイト列を
ファイルに書き込みます。

これで出力したランダムなバイト列はあとで乱数生成器を初期化するの
に使えます。リブート直後などシステムからのエントロピーが少ない場合に
利用できます。

このファイルは利用者以外には読めないように保存しなければなりません。
部外者がこのファイルを読めることはセキュリティ上の問題を引き起します。

@param filename 書き込むファイルの名前
@raise OpenSSL::Random::RandomError ファイルの書き出しに失敗した場合に発生します

絞り込み条件を変える

Random.urandom(size) -> String (27301.0)

プラットフォームの提供する機能を使って、文字列を返します。

プラットフォームの提供する機能を使って、文字列を返します。

@param size 結果の文字列のサイズをバイト数で指定します。

@return 返り値はバイナリ形式で、暗号的に安全な擬似乱数だと期待できます。
@raise RuntimeError プラットフォームの提供する機能の準備に失敗した場合に発生します。

2017年の時点で、Linuxのmanpage(random(7))には「今日256ビット以上の
セキュリティを約束できる暗号化プリミティブが入手可能だとは期待できません」と
書いてあります。そのため、sizeとして32より大きい値を指定することには疑問の
余地があります。...

SecureRandom.random_bytes(n = nil) -> String (27301.0)

ランダムなバイト列を生成して返します。

ランダムなバイト列を生成して返します。

@param n 生成される文字列のサイズを整数で指定します。
nil を指定した場合 n として 16 が使われます。

@raise NotImplementedError 安全な乱数発生器が使えない場合に発生します。

require 'securerandom'
p SecureRandom.random_bytes(3) #=> "\321\020\203"

SecureRandom.random_number(n = 0) -> Integer | Float (27301.0)

ランダムな数値を生成して返します。 n が 1 以上の整数の場合、0 以上 n 未満の整数を返します。 n が 0 の場合、0.0 以上 1.0 未満の実数を返します。

ランダムな数値を生成して返します。
n が 1 以上の整数の場合、0 以上 n 未満の整数を返します。
n が 0 の場合、0.0 以上 1.0 未満の実数を返します。

@param n ランダムな数値の上限を数値で指定します。

@raise NotImplementedError 安全な乱数発生器が使えない場合に発生します。

require 'securerandom'
p SecureRandom.random_number(1 << 64) #=> 4078466195356651249

OpenSSL::Random::RandomError (27001.0)

OpenSSL の乱数関連のエラーが起きた場合に発生する例外

OpenSSL の乱数関連のエラーが起きた場合に発生する例外

Kernel.#srand -> Integer (18649.0)

Kernel.#rand や Random.rand で使用される擬似乱数生成器の種を設定し、古い種を返します。

Kernel.#rand や Random.rand で使用される擬似乱数生成器の種を設定し、古い種を返します。

seed に整数を指定するとその絶対値を乱数の種に設定します。
それ以外の値を指定した場合は seed.to_int が指定されたものとして扱います。
seed に既知の値を与えると、以前の Kernel.#rand の値を再現できます。

seed が省略された時には
現在の時刻やプロセス ID、srand を呼び出した回数、
また可能なら /dev/urandom から読み出したデータなどを元に種を作ります。

@param seed 乱数の種となる整数を指定します。
...

絞り込み条件を変える

Kernel.#srand(seed) -> Integer (18649.0)

Kernel.#rand や Random.rand で使用される擬似乱数生成器の種を設定し、古い種を返します。

Kernel.#rand や Random.rand で使用される擬似乱数生成器の種を設定し、古い種を返します。

seed に整数を指定するとその絶対値を乱数の種に設定します。
それ以外の値を指定した場合は seed.to_int が指定されたものとして扱います。
seed に既知の値を与えると、以前の Kernel.#rand の値を再現できます。

seed が省略された時には
現在の時刻やプロセス ID、srand を呼び出した回数、
また可能なら /dev/urandom から読み出したデータなどを元に種を作ります。

@param seed 乱数の種となる整数を指定します。
...

OpenSSL::BN.pseudo_rand(bits, fill=0, odd=false) -> OpenSSL::BN (18340.0)

乱数を生成し、返します。

乱数を生成し、返します。

乱数系列に暗号論的な強さはないため、暗号関連でない場合や、
強さが必要でない場合に用いることができます。
鍵生成のような場合には使えません。

bits ビットの長さの正の整数を生成します。

fill が -1 なら、生成させる数の最上位ビットが
0である場合を許容します。fill が 0 なら、
生成させる数の最上位ビットは1にセットされます、
つまり必ず bits ビットの整数となります。
fill が1の場合は、上位2ビットが1にセットされます。

odd が真なら、生成される整数は奇数のみとなります。

@param bits 発生させる数のビット数
@p...

OpenSSL::BN.pseudo_rand_range(range) -> OpenSSL::BN (18340.0)

乱数を 0 から range-1 までの間で生成し、返します。

乱数を 0 から range-1 までの間で生成し、返します。

乱数系列に暗号論的な強さはありません。

@param range 生成する乱数の範囲
@raise OpenSSL::BNError 乱数の生成に失敗した場合に発生します
@see OpenSSL::BN.pseudo_rand, OpenSSL::BN.rand_range

OpenSSL::BN.rand_range(range) -> OpenSSL::BN (18340.0)

暗号論的に強い擬似乱数を 0 から range-1 までの間で生成し、返します。

暗号論的に強い擬似乱数を 0 から range-1 までの間で生成し、返します。

@param range 生成する乱数の範囲
@raise OpenSSL::BNError 乱数の生成に失敗した場合に発生します
@see OpenSSL::BN.rand, OpenSSL::BN.pseudo_rand_range

OpenSSL::Engine::METHOD_RAND -> Integer (18304.0)

デフォルトのセキュアな乱数生成のための engine に設定することを意味します。

デフォルトのセキュアな乱数生成のための engine に設定することを意味します。

OpenSSL::Engine#set_default のフラグとして使います。

絞り込み条件を変える

OpenSSL::Cipher#random_iv -> String (18301.0)

IV を乱数で生成し、暗号オブジェクトに設定します。

IV を乱数で生成し、暗号オブジェクトに設定します。

生成した IV を文字列で返します。

OpenSSL::Cipher#random_key -> String (18301.0)

鍵を乱数で生成し、暗号オブジェクトに設定します。

鍵を乱数で生成し、暗号オブジェクトに設定します。

生成した鍵を文字列で返します。

WEBrick::Utils.#random_string(len) -> String (18301.0)

A-Z, a-z, 0-9 からなる長さ len のランダムな文字列を返します。

A-Z, a-z, 0-9 からなる長さ len のランダムな文字列を返します。

@param len 得たい文字列の長さを整数で指定します。単位はバイトです。

require 'webrick'
p WEBrick::Utils.random_string(10) #=> "xF0jwU4RJd"

OpenSSL::Random (18037.0)

OpenSSL が利用する擬似乱数生成器関連のモジュールです。

OpenSSL が利用する擬似乱数生成器関連のモジュールです。

* 4086

=== 暗号と乱数
OpenSSL では、鍵を生成するためなどに乱数を用いています。例えば RSA では
巨大(512bitや1024bitなど)な素数の組を乱数で生成し、そこから公開鍵、秘密鍵の
ペアを計算します。鍵は他人に知られてはならないため、
その乱数は外部からの推論が不可能な良い性質を持っている必要があります。
このようなメソッドには以下のものがあります。
* OpenSSL::PKey::RSA.generate
* OpenSSL::PKey::DSA.generate
* Open...

Random (18001.0)

MT19937に基づく擬似乱数生成器を提供するクラスです。

MT19937に基づく擬似乱数生成器を提供するクラスです。

=== 参考
オリジナル版 http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html

絞り込み条件を変える

SecureRandom (18001.0)

安全な乱数発生器のためのインターフェースを提供するモジュールです。 HTTP のセッションキーなどに適しています。

安全な乱数発生器のためのインターフェースを提供するモジュールです。
HTTP のセッションキーなどに適しています。

以下の乱数発生器をサポートしています。

* openssl
* /dev/urandom

上の安全な乱数発生器が使用できない場合、各メソッドは NotImplementedError を発生します。

# random hexadecimal string.
require 'securerandom'
p SecureRandom.hex(10) #=> "52750b30ffbc7de3b362"
p SecureRandom.hex(10) #...

securerandom (18001.0)

安全な乱数発生器のためのインターフェースを提供するライブラリです。 HTTP のセッションキーなどに適しています。

安全な乱数発生器のためのインターフェースを提供するライブラリです。
HTTP のセッションキーなどに適しています。

Random.new(seed = Random.new_seed) -> Random (9745.0)

メルセンヌ・ツイスタに基づく擬似乱数発生装置オブジェクトを作ります。 引数が省略された場合は、Random.new_seedの値を使用します。

メルセンヌ・ツイスタに基づく擬似乱数発生装置オブジェクトを作ります。
引数が省略された場合は、Random.new_seedの値を使用します。


@param seed 擬似乱数生成器の種を整数で指定します。

//emlist[例: 種が同じなら同じ乱数列を発生できる。][ruby]{
prng = Random.new(1234)
[ prng.rand, prng.rand ] #=> [0.1915194503788923, 0.6221087710398319]
[ prng.rand(10), prng.rand...

Random::DEFAULT -> Random (9337.0)

Ruby 3.0 から非推奨です。代わりに Random クラスオブジェクトを擬似乱数生成器として使用してください。

Ruby 3.0 から非推奨です。代わりに Random クラスオブジェクトを擬似乱数生成器として使用してください。

デフォルトの擬似乱数生成器です。
Random.rand や Kernel.#rand などで使用されます。

@see Random.srand, Kernel.#srand

Random#marshal_load(array) -> Random (9301.0)

Random#marshal_dump で得られた配列を基に、Randomオブジェクトを復元します。

Random#marshal_dump で得られた配列を基に、Randomオブジェクトを復元します。

@param array 三要素以下からなる配列を指定します。
何を指定するかはRandom#marshal_dumpを参考にしてください。

@raise ArgumentError array が3より大きい場合に発生します。

//emlist[例][ruby]{
r1 = Random.new(1)
a1 = r1.marshal_dump
r2 = Random.new(3)
r3 = r2.marshal_load(a1)

p r1 == r2 # ...

絞り込み条件を変える

Random.left -> Integer (9049.0)

C言語レベルで定義されている構造体MTの静的変数default_randの変数leftを参照します。詳しくはrandom.c を参照してください。

C言語レベルで定義されている構造体MTの静的変数default_randの変数leftを参照します。詳しくはrandom.c を参照してください。

Random.state -> Integer (9049.0)

C言語レベルで定義されている構造体MTの静的変数default_randの状態を参照します。詳しくはrandom.c を参照してください。

C言語レベルで定義されている構造体MTの静的変数default_randの状態を参照します。詳しくはrandom.c を参照してください。

Random#==(other) -> bool (9037.0)

乱数生成器が等しい状態であるならばtrue を返します。

乱数生成器が等しい状態であるならばtrue を返します。

@param other 比較対象の乱数生成器


//emlist[例][ruby]{
r1 = Random.new(1)
r2 = Random.new(1)

p r1 == r2 # => true
r2.rand
p r1 == r2 # => false
r1.rand
p r1 == r2 # => true
//}

OpenSSL::Random.#egd(filename) -> true (9001.0)

EGD(Entropy Gathering Daemon) からエントロピーを得、 乱数生成器に追加します。

EGD(Entropy Gathering Daemon) からエントロピーを得、
乱数生成器に追加します。

filename で指定した Unix domain socket から EGD に問い合わせ、
255 バイト分のエントロピーを取得します。
OpenSSL::Random.egd_bytes(filename, 255) と同じです。

@param filename EGD のソケットのファイル名
@raise OpenSSL::Random::RandomError

OpenSSL::Random.#egd_bytes(filename, length) -> true (9001.0)

EGD(Entropy Gathering Daemon) から length バイト分のエントロピーを得ます。

EGD(Entropy Gathering Daemon) から length バイト分のエントロピーを得ます。

filename で指定した Unix domain socket から EGD に問い合わせ、
指定した大きさのエントロピーを乱数生成器に追加します。

@param filename EGD のソケットのファイル名
@param length 読み込むバイト数
@raise OpenSSL::Random::RandomError


@raise OpenSSL::Random::RandomError

絞り込み条件を変える

OpenSSL::Random.#pseudo_bytes(len) -> String (9001.0)

暗号論的な予測不可能性を持たない(が高速な) 乱数生成器によって、 len バイトの ランダムなバイト列を返します。

暗号論的な予測不可能性を持たない(が高速な)
乱数生成器によって、 len バイトの
ランダムなバイト列を返します。

@param len 必要なランダムバイト列の長さ

OpenSSL::Random.#seed(str) -> str (9001.0)

乱数生成器にエントロピーを 「エントロピー予測値 = str のバイト数」として 追加します。

乱数生成器にエントロピーを
「エントロピー予測値 = str のバイト数」として
追加します。

OpenSSL::Random.random_add(str, str.size) と同じです。

@param str 予測不可能な内容の文字列
@see OpenSSL::Random.#random_add

OpenSSL::Random.#status? -> bool (9001.0)

乱数生成器内のエントロピーが十分である場合に true を返します。

乱数生成器内のエントロピーが十分である場合に true を返します。

Random#bytes(size) -> String (9001.0)

ランダムなバイナリー文字列を返します。結果の文字列のサイズを指定できます。

ランダムなバイナリー文字列を返します。結果の文字列のサイズを指定できます。

@param size 結果の文字列のサイズをバイト数で指定します。

//emlist[例][ruby]{
r2 = Random.new(1)
p r2.bytes(10) # => "%\xF4\xC1j\xEB\x80G\xFF\x8C/"
//}

Random#left -> Integer (9001.0)

C言語レベルで定義されている構造体MTの変数leftを参照します。詳しくはrandom.c を参照してください。

C言語レベルで定義されている構造体MTの変数leftを参照します。詳しくはrandom.c を参照してください。

絞り込み条件を変える

Random#marshal_dump -> Array (9001.0)

Random#marshal_load で復元可能な配列を返します。

Random#marshal_load で復元可能な配列を返します。

//emlist[例][ruby]{
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
//}

Random#seed -> Integer (9001.0)

現在の乱数の種を返します。

現在の乱数の種を返します。

//emlist[例][ruby]{
p Random.new(3).seed # => 3
//}

Random#state -> Integer (9001.0)

C言語レベルで定義されている構造体MTの状態を参照します。詳しくはrandom.c を参照してください。

C言語レベルで定義されている構造体MTの状態を参照します。詳しくはrandom.c を参照してください。

Random.new_seed -> Integer (9001.0)

適切な乱数の種を返します。

適切な乱数の種を返します。

//emlist[例][ruby]{
p Random.new_seed # => 184271600931914695177248627591520900872
//}

SecureRandom.alphanumeric(n = nil) -> String (9001.0)

ランダムな英数字を生成して返します。

ランダムな英数字を生成して返します。

@param n 生成される文字列のサイズを整数で指定します。
nil を指定した場合 n として 16 が使われます。
@return A-Z, a-z, 0-9 からなる文字列が返されます。

@raise NotImplementedError 安全な乱数発生器が使えない場合に発生します。

//emlist[][ruby]{
require 'securerandom'
p SecureRandom.alphanumeric #=> "2BuBuLf3WfSKyQbR"
p SecureRandom.alphanumeric(...

絞り込み条件を変える

SecureRandom.base64(n = nil) -> String (9001.0)

ランダムな base64 文字列を生成して返します。

ランダムな base64 文字列を生成して返します。

@param n 文字列の生成に使われるランダムネスのサイズを整数で指定します。
生成される文字列のサイズではないことに注意して下さい。生成される文字列のサイズは
n の約 4/3 倍になります。nil を指定した場合 n として 16 が使われます。

@raise NotImplementedError 安全な乱数発生器が使えない場合に発生します。

require 'securerandom'
p SecureRandom.base64(3) #=> "4pYO" (文字列のサイ...

SecureRandom.hex(n = nil) -> String (9001.0)

ランダムな hex 文字列を生成して返します。

ランダムな hex 文字列を生成して返します。

@param n 文字列の生成に使われるランダムネスのサイズを整数で指定します。
生成される文字列のサイズではないことに注意して下さい。生成される文字列のサイズは
n の 2 倍になります。nil を指定した場合 n として 16 が使われます。

@raise NotImplementedError 安全な乱数発生器が使えない場合に発生します。

require 'securerandom'
p SecureRandom.hex(3) #=> "f72233" (文字列のサイズは 3 で...

SecureRandom.urlsafe_base64(n = nil, padding = false) -> String (9001.0)

ランダムで URL-safe な base64 文字列を生成して返します。

ランダムで URL-safe な base64 文字列を生成して返します。

@param n 文字列の生成に使われるランダムネスのサイズを整数で指定します。
生成される文字列のサイズはn の約 4/3 倍になります。
nil を指定した場合 n として 16 が使われます。

@param padding 真を指定すると '=' でパディングを行います。
偽を指定するとパディングを行いません。デフォルトは偽です。

@raise NotImplementedError 安全な乱数発生器が使えない場合に発生します。

...

SecureRandom.uuid -> String (9001.0)

バージョン 4 の UUID (Universally Unique IDentifier) を生成して返します。

バージョン 4 の UUID (Universally Unique IDentifier) を生成して返します。

version 4 の UUID は全くランダムです (バージョンを除いて)。
この UUID は MAC アドレスや時刻などのような意味のある情報を含みません。

@raise NotImplementedError 安全な乱数発生器が使えない場合に発生します。

require 'securerandom'
p SecureRandom.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594"
p SecureRan...

Array#sample(n, random: Random) -> Array (673.0)

配列の要素を1個(引数を指定した場合は自身の要素数を越えない範囲で n 個) ランダムに選んで返します。

配列の要素を1個(引数を指定した場合は自身の要素数を越えない範囲で n 個)
ランダムに選んで返します。

重複したインデックスは選択されません。そのため、自身がユニークな配列の
場合は返り値もユニークな配列になります。

配列が空の場合、無引数の場合は nil を、個数を指定した場合は空配列を返します。

srand()が有効です。

@param n 取得する要素の数を指定します。自身の要素数(self.length)以上の
値を指定した場合は要素数と同じ数の配列を返します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
...

絞り込み条件を変える

Array#sample(random: Random) -> object | nil (673.0)

配列の要素を1個(引数を指定した場合は自身の要素数を越えない範囲で n 個) ランダムに選んで返します。

配列の要素を1個(引数を指定した場合は自身の要素数を越えない範囲で n 個)
ランダムに選んで返します。

重複したインデックスは選択されません。そのため、自身がユニークな配列の
場合は返り値もユニークな配列になります。

配列が空の場合、無引数の場合は nil を、個数を指定した場合は空配列を返します。

srand()が有効です。

@param n 取得する要素の数を指定します。自身の要素数(self.length)以上の
値を指定した場合は要素数と同じ数の配列を返します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
...

Array#shuffle!(random: Random) -> self (673.0)

配列を破壊的にランダムシャッフルします。

配列を破壊的にランダムシャッフルします。

@param random 乱数生成器(主に Random オブジェクト)を指定します。
選択する要素のインデックスを返す rand メソッドに応答する
オブジェクトであれば指定する事ができます。rand メソッド
の引数には Random#rand(max) のように選択可能なイン
デックスの最大値が指定されます。
Kernel.#rand、Random を使用しないオブジェク
ト...

Array#shuffle(random: Random) -> Array (601.0)

配列の要素をランダムシャッフルして,その結果を配列として返します。

配列の要素をランダムシャッフルして,その結果を配列として返します。

引数に Random オブジェクトを渡すことでそのオブジェクトが
生成する擬似乱数列を用いることができます。

//emlist[例][ruby]{
a = [ 1, 2, 3 ] #=> [1, 2, 3]
a.shuffle #=> [2, 3, 1]
rng = Random.new
rng2 = rng.dup # RNGを複製
# 以下の2つは同じ結果を返す
[1,2,3].shuffle(random: rng)
[1,2,3].shuffle(random:...

Array#sample -> object | nil (73.0)

配列の要素を1個(引数を指定した場合は自身の要素数を越えない範囲で n 個) ランダムに選んで返します。

配列の要素を1個(引数を指定した場合は自身の要素数を越えない範囲で n 個)
ランダムに選んで返します。

重複したインデックスは選択されません。そのため、自身がユニークな配列の
場合は返り値もユニークな配列になります。

配列が空の場合、無引数の場合は nil を、個数を指定した場合は空配列を返します。

srand()が有効です。

@param n 取得する要素の数を指定します。自身の要素数(self.length)以上の
値を指定した場合は要素数と同じ数の配列を返します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
...

Array#sample(n) -> Array (73.0)

配列の要素を1個(引数を指定した場合は自身の要素数を越えない範囲で n 個) ランダムに選んで返します。

配列の要素を1個(引数を指定した場合は自身の要素数を越えない範囲で n 個)
ランダムに選んで返します。

重複したインデックスは選択されません。そのため、自身がユニークな配列の
場合は返り値もユニークな配列になります。

配列が空の場合、無引数の場合は nil を、個数を指定した場合は空配列を返します。

srand()が有効です。

@param n 取得する要素の数を指定します。自身の要素数(self.length)以上の
値を指定した場合は要素数と同じ数の配列を返します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
...

絞り込み条件を変える

Array#shuffle! -> self (73.0)

配列を破壊的にランダムシャッフルします。

配列を破壊的にランダムシャッフルします。

@param random 乱数生成器(主に Random オブジェクト)を指定します。
選択する要素のインデックスを返す rand メソッドに応答する
オブジェクトであれば指定する事ができます。rand メソッド
の引数には Random#rand(max) のように選択可能なイン
デックスの最大値が指定されます。
Kernel.#rand、Random を使用しないオブジェク
ト...

Thread#join -> self (55.0)

スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。

スレッド self の実行が終了するまで、カレントスレッドを停止し
ます。self が例外により終了していれば、その例外がカレントス
レッドに対して発生します。

limit を指定して、limit 秒過ぎても自身が終了しない場合、nil を返します。

@param limit タイムアウトする時間を整数か小数で指定します。単位は秒です。

@raise ThreadError join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。

以下は、生成したすべてのスレッドの終了を待つ例です。

threads = ...

Thread#join(limit) -> self | nil (55.0)

スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。

スレッド self の実行が終了するまで、カレントスレッドを停止し
ます。self が例外により終了していれば、その例外がカレントス
レッドに対して発生します。

limit を指定して、limit 秒過ぎても自身が終了しない場合、nil を返します。

@param limit タイムアウトする時間を整数か小数で指定します。単位は秒です。

@raise ThreadError join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。

以下は、生成したすべてのスレッドの終了を待つ例です。

threads = ...

Thread#value -> object (55.0)

スレッド self が終了するまで待ち(Thread#join と同じ)、 そのスレッドのブロックが返した値を返します。スレッド実行中に例外が 発生した場合には、その例外を再発生させます。

スレッド self が終了するまで待ち(Thread#join と同じ)、
そのスレッドのブロックが返した値を返します。スレッド実行中に例外が
発生した場合には、その例外を再発生させます。

スレッドが Thread#kill によって終了した場合は、返り値は不定です。

以下は、生成したすべてのスレッドの終了を待ち結果を出力する例です。

threads = []
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.push(Thread.new { n = rand(5); sleep n; n })...

String#crypt(salt) -> String (37.0)

self と salt から暗号化された文字列を生成して返します。 salt には英数字、ドット (「.」)、スラッシュ (「/」) から構成される、 2 バイト以上の文字列を指定します。

self と salt から暗号化された文字列を生成して返します。
salt には英数字、ドット (「.」)、スラッシュ (「/」) から構成される、
2 バイト以上の文字列を指定します。

暗号化された文字列から暗号化前の文字列 (self) を求めることは一般に困難で、
self を知っている者のみが同じ暗号化された文字列を生成できます。
このことから self を知っているかどうかの認証に使うことが出来ます。

salt には、以下の様になるべくランダムな文字列を選ぶべきです。
他にも 29297 などがあります。

注意:

* Ruby 2.6 から非推奨になったため、引き続き...

絞り込み条件を変える

Timeout.#timeout(sec, exception_class = nil) {|i| ... } -> object (37.0)

ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。

ブロックを sec 秒の期限付きで実行します。
ブロックの実行時間が制限を過ぎたときは例外
Timeout::Error が発生します。

exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはいります。

また sec が 0 もしくは nil のときは制限時間なしで
ブロックを実行します。

@param sec タイムアウトする時間を秒数で指定します.
@param exception_class タイムアウトした時、発生させる例外を指定します.
@param message エラー...

Timeout.#timeout(sec, exception_class, message) {|i| ... } -> object (37.0)

ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。

ブロックを sec 秒の期限付きで実行します。
ブロックの実行時間が制限を過ぎたときは例外
Timeout::Error が発生します。

exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはいります。

また sec が 0 もしくは nil のときは制限時間なしで
ブロックを実行します。

@param sec タイムアウトする時間を秒数で指定します.
@param exception_class タイムアウトした時、発生させる例外を指定します.
@param message エラー...

1.6.8から1.8.0への変更点(まとめ) (19.0)

1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))

1.6.8から1.8.0への変更点(まとめ)
* ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>))
* ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>))
* ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>))
* ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>))
* ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>))
* ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>))...

Benchmark.#bmbm(width = 0) {|job| ... } -> [Benchmark::Tms] (19.0)

Benchmark::Job オブジェクトを生成して、それを引数として与えられたブロックを 実行します。

Benchmark::Job オブジェクトを生成して、それを引数として与えられたブロックを
実行します。

ベンチマークの結果は GC の影響によって歪められてしまうことがあります。
このメソッドは与えられたブロックを二度実行する事によってこの影響を最小化します。
一回目は実行環境を安定化するためにリハーサルとして実行します。二回目は本番として
実行します。

二回目のブロック実行の前に GC.start を実行しますが、この実行時間は計測には
含まれません。しかし、実際にはこのメソッドを使用しても、GC などの影響を分離する
ことは保証されません。

@param width ラベルの幅を...

Enumerable#max_by -> Enumerator (19.0)

各要素を順番にブロックに渡して実行し、 その評価結果を <=> で比較して、 最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

各要素を順番にブロックに渡して実行し、
その評価結果を <=> で比較して、
最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

引数を指定しない形式では要素が存在しなければ nil を返します。
引数を指定する形式では、空の配列を返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。

Enumerable#max と Enumerable#max_by の
違いは Enumerable#sort と Enumerable#sort_by の違いと同じです。

ブロックを省略した場合は Enumerator を返します。

@par...

絞り込み条件を変える

Enumerable#max_by {|item| ... } -> object | nil (19.0)

各要素を順番にブロックに渡して実行し、 その評価結果を <=> で比較して、 最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

各要素を順番にブロックに渡して実行し、
その評価結果を <=> で比較して、
最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

引数を指定しない形式では要素が存在しなければ nil を返します。
引数を指定する形式では、空の配列を返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。

Enumerable#max と Enumerable#max_by の
違いは Enumerable#sort と Enumerable#sort_by の違いと同じです。

ブロックを省略した場合は Enumerator を返します。

@par...

Enumerable#max_by(n) -> Enumerator (19.0)

各要素を順番にブロックに渡して実行し、 その評価結果を <=> で比較して、 最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

各要素を順番にブロックに渡して実行し、
その評価結果を <=> で比較して、
最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

引数を指定しない形式では要素が存在しなければ nil を返します。
引数を指定する形式では、空の配列を返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。

Enumerable#max と Enumerable#max_by の
違いは Enumerable#sort と Enumerable#sort_by の違いと同じです。

ブロックを省略した場合は Enumerator を返します。

@par...

Enumerable#max_by(n) {|item| ... } -> Array (19.0)

各要素を順番にブロックに渡して実行し、 その評価結果を <=> で比較して、 最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

各要素を順番にブロックに渡して実行し、
その評価結果を <=> で比較して、
最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

引数を指定しない形式では要素が存在しなければ nil を返します。
引数を指定する形式では、空の配列を返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。

Enumerable#max と Enumerable#max_by の
違いは Enumerable#sort と Enumerable#sort_by の違いと同じです。

ブロックを省略した場合は Enumerator を返します。

@par...

Enumerable#sort_by -> Enumerator (19.0)

ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。

ブロックの評価結果を <=> メソッドで比較することで、self を昇
順にソートします。ソートされた配列を新たに生成して返します。

つまり、以下とほぼ同じ動作をします。

//emlist[例][ruby]{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}

Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙...

Enumerable#sort_by {|item| ... } -> [object] (19.0)

ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。

ブロックの評価結果を <=> メソッドで比較することで、self を昇
順にソートします。ソートされた配列を新たに生成して返します。

つまり、以下とほぼ同じ動作をします。

//emlist[例][ruby]{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}

Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙...

絞り込み条件を変える

Matrix.build(row_size, column_size = row_size) -> Enumerable (19.0)

row_size×column_sizeの行列をブロックの返り値から生成します。

row_size×column_sizeの行列をブロックの返り値から生成します。

行列の各要素の位置がブロックに渡され、それの返り値が行列の要素となります。

ブロックを省略した場合は Enumerator を返します。

//emlist[例][ruby]{
require 'matrix'
m = Matrix.build(2, 4) {|row, col| col - row }
# => Matrix[[0, 1, 2, 3], [-1, 0, 1, 2]]
m = Matrix.build(3) { rand }
# => a 3x3 matrix with random...

Matrix.build(row_size, column_size = row_size) {|row, col| ... } -> Matrix (19.0)

row_size×column_sizeの行列をブロックの返り値から生成します。

row_size×column_sizeの行列をブロックの返り値から生成します。

行列の各要素の位置がブロックに渡され、それの返り値が行列の要素となります。

ブロックを省略した場合は Enumerator を返します。

//emlist[例][ruby]{
require 'matrix'
m = Matrix.build(2, 4) {|row, col| col - row }
# => Matrix[[0, 1, 2, 3], [-1, 0, 1, 2]]
m = Matrix.build(3) { rand }
# => a 3x3 matrix with random...

Observable (19.0)

Observer パターンを提供するモジュールです。

Observer パターンを提供するモジュールです。

Mix-in により Observer パターンを提供します。

Observable モジュールを include したクラスは
Observable#changed メソッドにより更新フラグを立て、
Observable#notify_observers が呼び出されると
更新フラグが立っている場合はオブザーバに通知します
(オブザーバの update メソッドを呼び出す)。
Observable#notify_observers の引数は
そのままオブザーバの update メソッドに渡されます。

=== サンプルコード
re...

OpenSSL::Engine#set_default(flags) -> true (19.0)

engine をデフォルトで利用するようにします。

engine をデフォルトで利用するようにします。

flags は engine を openssl のどの機能に関してデフォルトに
するかを指定します。

flags は以下の値の OR を取ります。
* OpenSSL::Engine::METHOD_CIPHERS
* OpenSSL::Engine::METHOD_DH
* OpenSSL::Engine::METHOD_DIGESTS
* OpenSSL::Engine::METHOD_DSA
* OpenSSL::Engine::METHOD_RSA
* OpenSSL::Engine::METHOD_RA...

Zlib::Deflate#set_dictionary(string) -> String (19.0)

圧縮に用いる辞書を指定します。string を返します。 このメソッドは Zlib::Deflate.new, Zlib::ZStream#reset を呼び出した直後にのみ有効です。詳細は zlib.h を参照して下さい。

圧縮に用いる辞書を指定します。string を返します。
このメソッドは Zlib::Deflate.new, Zlib::ZStream#reset
を呼び出した直後にのみ有効です。詳細は zlib.h を参照して下さい。

@param string 辞書に用いる文字列を指定します。詳しくは zlib.h を参照してください。
@return 辞書に用いる文字列を返します。

require 'zlib'

def case1(str)
dez = Zlib::Deflate.new
comp_str = dez.deflate(str)
comp_s...

絞り込み条件を変える

Zlib::Deflate.deflate(string, level = Zlib::DEFAULT_COMPRESSION) -> String (19.0)

string を圧縮します。level の有効な値は Zlib::NO_COMPRESSION, Zlib::BEST_SPEED, Zlib::BEST_COMPRESSION, Zlib::DEFAULT_COMPRESSION 及び 0 から 9 の整数です。

string を圧縮します。level の有効な値は
Zlib::NO_COMPRESSION, Zlib::BEST_SPEED,
Zlib::BEST_COMPRESSION, Zlib::DEFAULT_COMPRESSION
及び 0 から 9 の整数です。

ちなみに、このメソッドは以下のコードとほぼ同じです:

require 'zlib'

def deflate(string, level)
z = Zlib::Deflate.new(level)
dst = z.deflate(string, Zlib::FINISH)
z.close
...

ruby 1.8.3 feature (19.0)

ruby 1.8.3 feature *((<ruby 1.8 feature>)) *((<ruby 1.8.2 feature>))

ruby 1.8.3 feature
*((<ruby 1.8 feature>))
*((<ruby 1.8.2 feature>))

ruby 1.8.2 から ruby 1.8.3 までの変更点です。

掲載方針

*バグ修正の影響も含めて動作が変わるものを収録する。
*単にバグを直しただけのものは収録しない。
*ライブラリへの単なる定数の追加は収録しない。

以下は各変更点に付けるべきタグです。

記号について(特に重要なものは大文字(主観))

* カテゴリ
* [ruby]: ruby インタプリタの変更
* [api]: 拡張ライブラリ API
* [lib]: ...