限定された範囲に対する素数マッピングの最適化
指定された範囲内の素数を特定することは、基本的な数学の問題です。最終的な目標は、指定された制限 N までの数値の素数を効率的に識別しながら、メモリ消費を最小限に抑えるアルゴリズムを考案することです。
既存のアプローチ: 奇数のビットマスク
One奇数の場合のアプローチは、各ビットが対応する数値の素数ステータスを表すビットマスクを使用することです。たとえば、範囲 (1, 10] は 1110 として表されます。1 は素数 (3、5、7、9) を示します。
ビットマスクの調整
ただし、このアプローチは、指定された範囲で 5 の倍数を削除することで改善でき、修正されたビットマスクは 11100 になります。ただし、1、3、7、または 9 で終わる数値には依然として個別のビットが必要です。
最適な解決策
この特定の問題に対する最もコンパクトなアルゴリズムは、範囲と利用可能な計算リソースによって異なります。
<code class="python">def isprime(n): if n == 2: return True if n == 3: return True if n % 2 == 0: return False if n % 3 == 0: return False i = 5 w = 2 while i * i <= n: if n % i == 0: return False i += w w = 6 - w return True</code>
追加の最適化
特定の最適化戦略は、目的に応じて異なります。考慮されている特定の数値範囲のパフォーマンスとメモリの制約。
以上が限られた範囲に対して素数マッピングを最適化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。