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

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