O~( บันทึก6n )O~( บันทึก4n )O~( n1 / 7)O ( บันทึกnO ( บันทึกเข้าสู่ระบบเข้าสู่ระบบn ))
O~( บันทึก2n )2- 80O~( บันทึก2n )
ในการทดสอบทั้งหมดเหล่านี้หน่วยความจำไม่ใช่ปัญหา
ในความคิดเห็นของพวกเขา jbapple ยกประเด็นของการตัดสินใจว่าการทดสอบเบื้องต้นที่จะใช้ในทางปฏิบัติ นี่คือคำถามของการนำไปใช้และการเปรียบเทียบ: ใช้และเพิ่มประสิทธิภาพอัลกอริธึมสักสองสามอย่างและพิจารณาว่าการทดสอบใดที่เร็วที่สุดในช่วงนั้น สำหรับการอยากรู้อยากเห็นของโคด PARI ไม่เพียงแค่นั้นและพวกเขามากับฟังก์ชั่นที่กำหนดisprime
และฟังก์ชั่นน่าจะเป็นispseudoprime
ทั้งสองซึ่งสามารถพบได้ที่นี่ การทดสอบความน่าจะเป็นที่ใช้คือ Miller – Rabin คนที่กำหนดขึ้นคือ BPSW
นี่คือข้อมูลเพิ่มเติมจากDana Jacobsen :
Pari ตั้งแต่รุ่น 2.3 ใช้ primality หลักฐาน APR-CL สำหรับisprime(x)
และ BPSW ทดสอบที่สำคัญน่าจะเป็น (กับ "เกือบจะเสริมความแข็งแกร่ง" การทดสอบลูคัส) ispseudoprime(x)
สำหรับ
พวกเขารับข้อโต้แย้งที่เปลี่ยนพฤติกรรม:
Pari 2.1.7 ใช้การตั้งค่าที่แย่กว่านั้นมาก isprime(x)
เป็นเพียงการทดสอบ MR (ค่าเริ่มต้น 10) ซึ่งนำไปสู่เรื่องสนุก ๆ เช่นการisprime(9)
กลับมาจริงบ่อยครั้ง การใช้isprime(x,1)
จะใช้การพิสูจน์ Pocklington ซึ่งใช้ได้ประมาณ 80 หลักแล้วช้าเกินไปที่จะเป็นประโยชน์โดยทั่วไป
คุณเขียนในความเป็นจริงแล้วไม่มีใครใช้อัลกอริธึมเหล่านี้เนื่องจากมันช้าเกินไป ฉันเชื่อว่าฉันรู้ว่าคุณหมายถึงอะไร แต่ฉันคิดว่าสิ่งนี้แข็งแกร่งเกินไปขึ้นอยู่กับผู้ชมของคุณ แน่นอนว่า AKS ช้าอย่างน่าประหลาดใจ แต่ APR-CL และ ECPP นั้นเร็วพอที่บางคนใช้งาน พวกเขามีประโยชน์สำหรับ crypto หวาดระแวงและมีประโยชน์สำหรับคนที่ทำสิ่งต่าง ๆ เช่นprimegaps
หรือfactordb
ที่หนึ่งมีเวลาเพียงพอที่จะต้องการพิสูจน์เฉพาะ
[ความคิดเห็นของฉันเกี่ยวกับเรื่องนี้: เมื่อมองหาจำนวนเฉพาะในช่วงที่เฉพาะเจาะจงเราใช้วิธีการกรองบางอย่างตามด้วยการทดสอบความน่าจะเป็นที่ค่อนข้างรวดเร็ว ถ้าอย่างนั้นถ้าอย่างนั้นเราจะทำการทดสอบที่กำหนดขึ้น]
ในการทดสอบทั้งหมดเหล่านี้หน่วยความจำไม่ใช่ปัญหา มันเป็นปัญหาสำหรับ AKS ดูตัวอย่างeprintนี้ บางส่วนนี้ขึ้นอยู่กับการใช้งาน ถ้าใครใช้สิ่งที่วิดีโอของ numberphile เรียกว่า AKS (ซึ่งจริงๆแล้วเป็นบทสรุปของทฤษฎีบท Little ของแฟร์มาต์) การใช้หน่วยความจำจะสูงมาก การใช้ NTL ของอัลกอริทึม v1 หรือ v6 เช่นกระดาษอ้างอิงจะส่งผลให้หน่วยความจำจำนวนมากโง่ การใช้ GMP v6 ที่ดีจะยังคงใช้ ~ 2GB สำหรับ Prime 1024 บิตซึ่งเป็นจำนวนมากของหน่วยความจำสำหรับจำนวนน้อยเช่นนั้น การใช้การปรับปรุงของเบิร์นสไตน์และการแบ่งส่วนไบนารีของ GMP ทำให้การเติบโตดีขึ้นมาก (เช่น ~ 120MB สำหรับ 1024 บิต) นี่ยังคงมีขนาดใหญ่กว่าวิธีอื่น ๆ และไม่น่าแปลกใจที่จะช้ากว่า APR-CL หรือ ECPP นับล้านครั้ง