種類
- インスタンスメソッド (33)
- 文書 (26)
- モジュール (22)
- モジュール関数 (19)
クラス
- Random (33)
モジュール
- Timeout (19)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) -
NEWS for Ruby 3
. 0 . 0 (4) - Observable (11)
- Random (11)
-
ruby 1
. 8 . 3 feature (11) - timeout (19)
検索結果
先頭5件
-
Random
# rand -> Float (21313.0) -
一様な擬似乱数を発生させます。
...数を返す場合は range.begin + self.rand((range.end - range.begin) + e)
の値を返します(e は終端を含む場合は1、含まない場合は0です)。
range.end - range.begin が実数を返す場合も同様です。
このため range が Time の場合などにもうまく動作し......ge.begin は数値である必要があり、
range.begin + 数値 が適切な値を返す必要があります。
@raise Errno::EDOM rand(1..Float::INFINITY) などのように範囲に問題があるときに発生します。
@raise ArgumentError 引数の数が0または1では無......ruby]{
# Kernel.#rand とほぼ同様の使い勝手
prng = Random.new(1234)
prng.rand # => 0.1915194503788923
srand(1234)
rand # => 0.1915194503788923
# max に実数も指定出来る
prng.rand(6.5) # => 4.043707011758907
# (rand(6) と同等)
rand(6.5)... -
Random
# rand(max) -> Integer | Float (21313.0) -
一様な擬似乱数を発生させます。
...数を返す場合は range.begin + self.rand((range.end - range.begin) + e)
の値を返します(e は終端を含む場合は1、含まない場合は0です)。
range.end - range.begin が実数を返す場合も同様です。
このため range が Time の場合などにもうまく動作し......ge.begin は数値である必要があり、
range.begin + 数値 が適切な値を返す必要があります。
@raise Errno::EDOM rand(1..Float::INFINITY) などのように範囲に問題があるときに発生します。
@raise ArgumentError 引数の数が0または1では無......ruby]{
# Kernel.#rand とほぼ同様の使い勝手
prng = Random.new(1234)
prng.rand # => 0.1915194503788923
srand(1234)
rand # => 0.1915194503788923
# max に実数も指定出来る
prng.rand(6.5) # => 4.043707011758907
# (rand(6) と同等)
rand(6.5)... -
Random
# rand(range) -> Integer | Float (21313.0) -
一様な擬似乱数を発生させます。
...数を返す場合は range.begin + self.rand((range.end - range.begin) + e)
の値を返します(e は終端を含む場合は1、含まない場合は0です)。
range.end - range.begin が実数を返す場合も同様です。
このため range が Time の場合などにもうまく動作し......ge.begin は数値である必要があり、
range.begin + 数値 が適切な値を返す必要があります。
@raise Errno::EDOM rand(1..Float::INFINITY) などのように範囲に問題があるときに発生します。
@raise ArgumentError 引数の数が0または1では無......ruby]{
# Kernel.#rand とほぼ同様の使い勝手
prng = Random.new(1234)
prng.rand # => 0.1915194503788923
srand(1234)
rand # => 0.1915194503788923
# max に実数も指定出来る
prng.rand(6.5) # => 4.043707011758907
# (rand(6) と同等)
rand(6.5)... -
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (9124.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...sec 秒の期限付きで実行します。
ブロックの実行時間が制限を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がは......アウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t = 5
min = [ 0, 0]
begin
Timeout.timeout(t){
calc_pi(min)
}
rescue Timeout::Error
puts "timeout"
end
printf......るタイムアウト
#!/usr/bin/env ruby
require 'timeout'
class MYError < Exception;end
begin
Timeout.timeout(5, MYError) {
sleep(30)
}
rescue MYError => err
puts "MYError"
puts err
end
=== 注意
timeout による割り込みは Thread によって実現さ... -
Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object (9124.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...sec 秒の期限付きで実行します。
ブロックの実行時間が制限を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がは......アウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t = 5
min = [ 0, 0]
begin
Timeout.timeout(t){
calc_pi(min)
}
rescue Timeout::Error
puts "timeout"
end
printf......るタイムアウト
#!/usr/bin/env ruby
require 'timeout'
class MYError < Exception;end
begin
Timeout.timeout(5, MYError) {
sleep(30)
}
rescue MYError => err
puts "MYError"
puts err
end
=== 注意
timeout による割り込みは Thread によって実現さ... -
OpenSSL
:: Random (6018.0) -
OpenSSL が利用する擬似乱数生成器関連のモジュールです。
...下のものがあります。
* OpenSSL::PKey::RSA.generate
* OpenSSL::PKey::DSA.generate
* OpenSSL::PKey::DH.generate
* OpenSSL::Cipher#random_key
そのような乱数は適切な実装を持つ擬似乱数生成器に適切なシードを渡す
ことによって実現できます。
Op......L::BN.rand
* OpenSSL::BN.rand_range
* OpenSSL::BN.generate_prime
* OpenSSL::Cipher#random_iv
などでも利用されます。
擬似乱数生成器は適切なシードを与えられなければ正しく動作しません。
OpenSSL にはそのための API
* OpenSSL::Random.#random_add......れる乱数がより予測不可能になる。
エントロピー源には良いものと悪いものがあります。例えば現在時刻(Unix time)は
エントロピー源としては悪いです。なぜなら予測不可能なのは
せいぜい秒の部分のみであり、上位のビッ... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (162.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への変更点(まとめ)/サポートプラットフォームの追加>))
...します。
=== Time
: ((<Time#getgm|Time/getgm>)) [new]
: ((<Time#getlocal|Time/getlocal>)) [new]
: ((<Time#getutc|Time/getutc>)) [new]
: ((<Time#gmt_offset|Time/gmt_offset>)) [new]
: ((<Time#gmtoff|Time/gmtoff>)) [new]
: ((<Time#utc_offset|Time/utc_offset>)) [new]......た。
以前は常にシェルを経由していました(win32系portは2003-01-04に変更)。
((<ruby-dev:19107>))
: ((<組み込み関数/rand>)) [compat]
乱数生成のアルゴリズムに
((<Mersenne Twister|URL:http://www.math.keio.ac.jp/~matumoto/mt.html>))
を使用するよ......ストに含まれるようになりました。
((<rubyist:1282>))
=== Time
: ((<Time>)) [compat]
負の time_t を扱えるようになりました(OSがサポートしている場合に限る)
p Time.at(-1)
=> Thu Jan 01 08:59:59 JST 1970
=== UnboundMethod
: ((<UnboundM... -
ruby 1
. 8 . 3 feature (54.0) -
ruby 1.8.3 feature *((<ruby 1.8 feature>)) *((<ruby 1.8.2 feature>))
...ue
=== 2005-08-29
: Time.parse [lib] [compat]
Time.parse が小数点以下の秒も扱えるようになりました。((<ruby-talk:153859>))
$ ruby-1.8.2 -r time -e 'p Time.parse("23 Aug 2005 19:00:01.1").to_f'
1124791201.0
$ ruby-1.8.3 -r time -e 'p Time.parse("23 Aug 2005......? [lib] [new]
: GDBM#closed? [lib] [new]
: SDBM#closed? [lib] [new]
=== 2005-06-16
: Time.parse [lib] [compat]
うるう秒 "Fri Jan 1 08:59:60 +0900 1999" をサポートしている環境において、Time.parse が
適切に振舞うようになりました。
=== 2005-06-08
: Curses.in......01-05
: srand(bignum) [compat]
srand が引数として unsigned long よりも大きな値も受け付けるようになりました。
: rand(bignum) [bug]
負の ((<Bignum>)) を受け取っても 正の ((<Bignum>)) を返すようになりました。
=== 2005-01-03
: srand [compat]... -
Observable (36.0)
-
Observer パターンを提供するモジュールです。
...last_price = price
notify_observers(Time.now, price)
end
sleep 1
end
end
end
class Price ### A mock class to fetch a stock price (60 - 140).
def self.fetch(symbol)
60 + rand(80)
end
end
class Warner ### An abstr......date(time, price) # callback for observer
if price < @limit
print "--- #{time.to_s}: Price below #@limit: #{price}\n"
end
end
end
class WarnHigh < Warner
def update(time, price) # callback for observer
if price > @limit
print "+++ #{time.to_... -
NEWS for Ruby 3
. 0 . 0 (18.0) -
NEWS for Ruby 3.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...ken by the same definition in an
ancestor class/module, a RuntimeError is now raised (previously,
it only issued a warning in verbose mode). Additionally, accessing a
class variable from the toplevel scope is now a RuntimeError.
14541
* Assigning to a numbered parameter is now a S......_readable, IO#wait_writable, IO#read, IO#write and other related methods (e.g. IO#puts, IO#gets) may invoke the scheduler hook `#io_wait(io, events, timeout)` in a non-blocking execution context. 16786
* Kernel
* Kernel#clone when called with the `freeze: false` keyword will call `#initialize_......ublic" methods now accept single array argument with a list of method names. 17314
* Module#attr_accessor, Module#attr_reader, Module#attr_writer and Module#attr methods now return an array of defined method names as symbols. 17314
* Module#alias_method now returns the defined alias as a sym...