• ベストアンサー

素数生成 by エラトステネスの篩:多項式時間計算

n*log(log(n)) < n^2 ∈ {多項式} なのですから、下記ウィキペディアの 「has an exponential time complexity (= 指数関数的な時間計算量となる)」という記述は間違って居ますね?: https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes

質問者が選んだベストアンサー

  • ベストアンサー
  • mohicans
  • ベストアンサー率100% (4/4)
回答No.2

可能です!

koitiluv1842
質問者

お礼

有難う御座います。有り得ます、という意味ですね?しかし、補足内容を御覧下さい。自明な事を尋ねた、愚問なのでした。

koitiluv1842
質問者

補足

下記の関連 Q&A から、答えがイエスな事は、自明でした。: https://okwave.jp/qa/q10133926.html

その他の回答 (1)

回答No.1

続いてwith regard to input size,とあるように、入力サイズに対して指数関数的な時間計算量となる、のです。 「n未満のすべての素数を計算する時間計算量はO ( n log log n )回の演算」と書いてある通り、計算する時間計算量が「指数関数的な時間計算量」になる、とは書いてありません。 判りやすく簡単に言うと「nが巨大になると、篩に使う表が巨大になり、表を初期化する時間が、指数関数的に増えるよ」って言ってるだけです。 例えば、1億までの素数を計算するには、最初に、1億サイズの表を用意し、その表の1枠1枠をTrueに初期化するのを、1億回繰り返さねばなりません。 その「初期化に要する計算時間」が「指数関数的に増加する」って言ってるのです。

koitiluv1842
質問者

補足

御回答の第一段落と第二段落が全く矛盾していますよ。エラトステネスの篩に「表の初期化」など要りませんしね。