Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengoptimumkan Pemetaan Nombor Perdana untuk Julat Terhad?
Mengoptimumkan Pemetaan Nombor Perdana untuk Julat Terhad
Mengenal pasti nombor perdana dalam julat tertentu ialah masalah matematik asas. Matlamat utama adalah untuk mencipta algoritma yang meminimumkan penggunaan memori sambil mengenal pasti nombor perdana untuk nombor sehingga had tertentu N.
Pendekatan Sedia Ada: Bitmasking Nombor Ganjil
Satu pendekatan untuk nombor ganjil adalah menggunakan bitmasking, di mana setiap bit mewakili status perdana bagi nombor yang sepadan. Sebagai contoh, julat (1, 10] akan diwakili sebagai 1110, dengan 1s menunjukkan bilangan prima (3, 5, 7, 9).
Memperhalusi Bitmask
Walau bagaimanapun, pendekatan ini boleh dipertingkatkan dengan menghapuskan gandaan lima bagi julat yang diberikan, bitmask yang disemak semula menjadi 11100. Walau bagaimanapun, nombor yang berakhir dengan 1, 3, 7 atau 9 masih memerlukan bit individu.
Penyelesaian Optimum
Algoritma paling padat untuk masalah khusus ini berbeza-beza bergantung pada julat dan sumber pengiraan yang tersedia.
<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>
Pengoptimuman Tambahan
Strategi pengoptimuman khusus bergantung pada yang diingini prestasi dan kekangan ingatan untuk julat nombor tertentu yang sedang dipertimbangkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Pemetaan Nombor Perdana untuk Julat Terhad?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!