เครื่องมือทดสอบจำนวนเฉพาะ (Miller-Rabin)

ป้อนตัวเลข

ตัวอย่างตัวเลข:

ผลลัพธ์การทดสอบ

ป้อนตัวเลขแล้วคลิก "เริ่มทดสอบ"

คำอธิบายอัลกอริทึม Miller-Rabin:

หลักการอัลกอริทึม: Miller-Rabin เป็นอัลกอริทึมการทดสอบจำนวนเฉพาะแบบความน่าจะเป็น อาศัยการขยายทฤษฎีบทเล็กของแฟร์มาต์ สำหรับเลขคี่ n เขียน n-1 ในรูปแบบ 2^r × d แล้วทดสอบว่าเป็นไปตามเงื่อนไข:
a^d ≡ 1 (mod n) 或 a^(2^i × d) ≡ -1 (mod n) 对某个 0 ≤ i < r
จำนวนรอบการทดสอบและความแม่นยำ:
  • การทดสอบแบบความน่าจะเป็น:สุ่มเลือกฐาน a แต่ละรอบจะลดอัตราผิดพลาดลงเหลือ 1/4
  • การทดสอบ k รอบ:อัตราผิดพลาดทางทฤษฎี ≤ (1/4)^k จริงต่ำกว่านี้มาก
  • การทดสอบเชิงกำหนด:สำหรับ n < 3,317,044,064,679,887,385,961,981 ใช้ชุดฐานเฉพาะ {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37} จะได้ผลลัพธ์แม่นยำ 100%
กรณีพิเศษ:
  • จำนวนเฉพาะขนาดเล็ก:2, 3, 5, 7 ฯลฯ ตรวจสอบโดยตรง
  • เลขคู่:ยกเว้น 2 แล้วเป็นจำนวนประกอบทั้งหมด
  • จำนวน Carmichael:ตัวเลขที่ผ่านการทดสอบแฟร์มาต์แต่เป็นจำนวนประกอบ (เช่น 561) Miller-Rabin สามารถระบุได้ถูกต้อง

สถานการณ์การใช้งาน:

  • วิทยาการเข้ารหัส: ต้องการตรวจสอบจำนวนเฉพาะขนาดใหญ่อย่างรวดเร็วในการสร้างคีย์ RSA
  • วิจัยทฤษฎีจำนวน: ค้นหาจำนวนเฉพาะเมอร์แซนน์ จำนวนเฉพาะคู่ ฯลฯ
  • การเขียนโปรแกรมแข่งขัน: ตรวจสอบจำนวนเฉพาะอย่างรวดเร็ว ความซับซ้อน O(k log³n)
  • การสร้างเลขสุ่ม: สร้างจำนวนเฉพาะขนาดใหญ่ที่ตรงตามเงื่อนไขเฉพาะ