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