class Prime::PseudoPrimeGenerator

[edit]

要約

擬似素数列の列挙子のための抽象クラスです。

Prime の各メソッドが使用する低水準の擬似素数列挙子は、 Prime::PseudoPrimeGenerator のインスタンスであることが期待されています。このクラスを継承する具象クラスは succ, next, rewind をオーバーライドしなければなりません。

独自の素数列挙アルゴリズムを実装しようとする場合を除いて、ユーザーがこのクラスを利用する必要はありません。高水準の Prime クラスを利用してください。

目次

特異メソッド
インスタンスメソッド

継承しているメソッド

Enumerableから継承しているメソッド

特異メソッド

new(upper_bound = nil) -> Prime::PseudoPrimeGenerator[permalink][rdoc][edit]

自身を初期化します。

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

インスタンスメソッド

each {|prime| ... } -> object[permalink][rdoc][edit]
each -> self

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

with_index {|prime, index| ... } -> self[permalink][rdoc][edit]
each_with_index {|prime, index| ... } -> self
with_index -> Enumerator
each_with_index -> Enumerator

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

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


require 'prime'
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 -> ()[permalink][rdoc][edit]
succ -> ()

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

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

[EXCEPTION] NotImplementedError:
必ず発生します。
rewind -> ()[permalink][rdoc][edit]

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

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

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

[SEE_ALSO] Enumerator#rewind

upper_bound -> Integer | nil[permalink][rdoc][edit]

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

upper_bound=(upper_bound)[permalink][rdoc][edit]

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

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

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

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

[SEE_ALSO] Enumerator#with_object