class Prime::Generator23 + Prime::PseudoPrimeGenerator
クラスの継承リスト: Prime::Generator23 < Prime::PseudoPrimeGenerator < Enumerable < Object < Kernel < BasicObject
要約
2と3と、3 より大きくて 2 でも 3 でも割り切れない全ての整数を生成します。
ある整数の素数性を疑似素数による試し割りでチェックする場合、このように低精度だが高速でメモリを消費しない疑似素数生成器が適しています。
一方、 Prime#each のように素数列を生成する目的にはまったく役に立ちません。
特異メソッド
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
-
次の疑似素数を返します。
また内部的な列挙位置を進めます。
next -> ()
succ -> ()
-
次の擬似素数を返します。 また内部的な位置を進めます。
サブクラスで実装してください。
- [EXCEPTION] NotImplementedError:
- 必ず発生します。
rewind -> nil
-
列挙状態を巻き戻します。
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::Generator23