Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > primeライブラリ > Prime::EratosthenesGeneratorクラス

class Prime::EratosthenesGenerator + Prime::PseudoPrimeGenerator

クラスの継承リスト: Prime::EratosthenesGenerator < Prime::PseudoPrimeGenerator < Enumerable < Object < Kernel < BasicObject

要約

Prime::PseudoPrimeGenerator の具象クラスです。 素数の生成にエラトステネスのふるいを使用しています。

特異メソッド

new(upper_bound = nil) -> Prime::PseudoPrimeGenerator

自身を初期化します。

[PARAM] upper_bound:
列挙する素数の上界を指定します。

インスタンスメソッド

each {|prime| ... } -> object
each -> self

素数を与えられたブロックに渡して評価します。

with_index {|prime, index| ... } -> self
each_with_index {|prime, index| ... } -> self
with_index -> Enumerator
each_with_index -> Enumerator

与えられたブロックに対して、素数を0起点の連番を渡して評価します。

[RETURN]
ブロックを与えられた場合は self を返します。 ブロックを与えられなかった場合は Enumerator を返します。

例:

Prime::EratosthenesGenerator.new(10).each_with_index do |prime, index|
  p [prime, index]
end
# [2, 0]
# [3, 1]
# [5, 2]
# [7, 3]

[SEE_ALSO] Enumerator#with_index

next -> Integer
succ -> Integer

次の(疑似)素数を返します。なお、この実装においては疑似素数は真に素数です。

また内部的な列挙位置を進めます。

例:

generator = Prime::EratosthenesGenerator.new
p generator.next #=> 2
p generator.next #=> 3
p generator.succ #=> 5
p generator.succ #=> 7
p generator.next #=> 11
next -> ()
succ -> ()

次の擬似素数を返します。 また内部的な位置を進めます。

サブクラスで実装してください。

[EXCEPTION] NotImplementedError:
必ず発生します。
rewind -> nil

列挙状態を巻き戻します。

例:

generator = Prime::EratosthenesGenerator.new
p generator.next #=> 2
p generator.next #=> 3
p generator.next #=> 5

generator.rewind

p generator.next #=> 2
rewind -> ()

列挙状態を巻き戻します。

サブクラスで実装してください。

[EXCEPTION] NotImplementedError:
必ず発生します。

[SEE_ALSO] Enumerator#rewind

upper_bound -> Integer | nil

現在の列挙上界を返します。 nil は上界がなく無限に素数を列挙すべきであることを意味します。

upper_bound=(upper_bound)

新しい列挙上界をセットします。

[PARAM] upper_bound:
新しい上界を整数または nil で指定します。 nil は上界がなく無限に素数を列挙すべきであることを意味します。
with_object(obj) {|prime, obj| ... } -> object
with_object(obj) -> Enumerator

与えられた任意のオブジェクトと要素をブロックに渡して評価します。

[PARAM] obj:
任意のオブジェクトを指定します。
[RETURN]
最初に与えられたオブジェクトを返します。
[RETURN]
ブロックを与えられた場合は obj を返します。ブロックを与えられなかった場合は Enumerator を返します。

[SEE_ALSO] Enumerator#with_object

class Prime::EratosthenesGenerator