Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menentukan Pemetaan Perdana Paling Padat untuk Julat (1, N)?
Menentukan Pemetaan Perdana Padat Optimum untuk Julat (1, N)
Mencari pemetaan perdana yang paling padat boleh menjadi tugas yang mencabar. Algoritma yang ideal akan menghasilkan struktur data dengan penggunaan memori terendah untuk julat tertentu (1, N).
Satu pendekatan yang berpotensi ialah algoritma AKS, yang dianggap paling pantas untuk ujian perdana am. Untuk bilangan prima yang besar, meneroka bilangan prima dengan bentuk khas, seperti bilangan prima Mersenne, mungkin bermanfaat.
Walau bagaimanapun, untuk ujian prima tujuan umum dalam julat terhad, algoritma yang lebih praktikal dan cekap boleh digunakan:
<code class="python">def isprime(n): """Returns True if n is prime.""" if n == 2 or n == 3: return True if n % 2 == 0 or 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>
Algoritma ini memanfaatkan fakta bahawa nombor perdana (kecuali 2 dan 3) adalah sama ada dalam bentuk 6k - 1 atau 6k 1. Ia dengan cekap memeriksa pembahagi dalam julat ini, menjadikannya sesuai untuk menentukan keprimaan dalam selang waktu yang ditentukan.
Jika kelajuan diutamakan dan julat ditakrifkan dengan baik, laksanakan ujian pseudo-prima berdasarkan Fermat's sedikit teorem boleh meningkatkan lagi kecekapan. Prapengiraan positif palsu (nombor Carmichael) dan menggunakan carian binari menyediakan pendekatan yang lebih pantas, tetapi ia datang dengan pengehadan julat terhad.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Pemetaan Perdana Paling Padat untuk Julat (1, N)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!