เนื่องจากฉันเป็นเจ้าของสถิติโลกในปัจจุบันสำหรับตัวเลขส่วนใหญ่ของไพฉันจะเพิ่มสองเซ็นต์ของฉัน:
เว้นแต่ว่าคุณกำลังตั้งค่าสถิติโลกจริงการปฏิบัติทั่วไปก็เพื่อตรวจสอบตัวเลขที่คำนวณกับค่าที่ทราบ นั่นง่ายพอ
ในความเป็นจริงฉันมีหน้าเว็บที่แสดงตัวอย่างข้อมูลตัวเลขเพื่อตรวจสอบการคำนวณกับพวกเขา: http://www.numberworld.org/digits/Pi/
แต่เมื่อคุณเข้าสู่ดินแดนสถิติโลกไม่มีอะไรที่จะเปรียบเทียบได้
ในอดีตแนวทางมาตรฐานสำหรับการตรวจสอบว่าตัวเลขที่คำนวณนั้นถูกต้องคือการคำนวณตัวเลขใหม่โดยใช้อัลกอริทึมที่สอง ดังนั้นหากการคำนวณใดไม่ดีตัวเลขท้ายที่สุดจะไม่ตรงกัน
โดยทั่วไปจะใช้เวลามากกว่าสองเท่า (เนื่องจากอัลกอริทึมที่สองมักจะช้ากว่า) แต่มันเป็นวิธีเดียวที่จะตรวจสอบตัวเลขที่คำนวณได้เมื่อคุณเดินเข้าไปในดินแดนที่ไม่จดที่แผนที่ของตัวเลขที่ไม่เคยคำนวณมาก่อนและสถิติโลกใหม่
ย้อนกลับไปในวันที่ซูเปอร์คอมพิวเตอร์กำลังตั้งค่าการบันทึกมีการใช้อัลกอริทึม AGM ที่แตกต่างกันสองแบบ:
นี่เป็นO(N log(N)^2)
อัลกอริธึมที่ใช้งานง่าย
อย่างไรก็ตามทุกวันนี้สิ่งต่าง ๆ เล็กน้อย ในการบันทึกสถิติโลกสามครั้งล่าสุดแทนที่จะทำการคำนวณสองครั้งเราทำการคำนวณเพียงครั้งเดียวโดยใช้สูตรที่รู้จักกันเร็วที่สุด ( Chudnovsky Formula ):
อัลกอริทึมนี้ยากที่จะนำไปใช้ แต่จะเร็วกว่าอัลกอริทึม AGM มาก
แล้วเราจะตรวจสอบตัวเลขไบนารีโดยใช้สูตร BBP สำหรับการสกัดบาท
สูตรนี้ช่วยให้คุณสามารถคำนวณเลขฐานสองโดยพลการโดยไม่ต้องคำนวณตัวเลขทั้งหมดก่อนหน้า ดังนั้นจึงใช้เพื่อตรวจสอบเลขฐานสองที่คำนวณล่าสุด ดังนั้นมันจะมากได้เร็วกว่าการคำนวณเต็ม
ข้อดีของสิ่งนี้คือ:
- ต้องการการคำนวณราคาแพงเพียงครั้งเดียวเท่านั้น
ข้อเสียคือ:
- จำเป็นต้องมีการใช้งานสูตรBailey – Borwein – Plouffe (BBP)
- จำเป็นต้องมีขั้นตอนเพิ่มเติมเพื่อตรวจสอบการแปลงฐานจากเลขฐานสองเป็นทศนิยม
ฉันได้ทำการตรวจสอบรายละเอียดบางส่วนว่าทำไมการตรวจสอบตัวเลขสองสามตัวสุดท้ายหมายความว่าตัวเลขทั้งหมดนั้นถูกต้อง แต่มันง่ายที่จะเห็นสิ่งนี้เนื่องจากข้อผิดพลาดในการคำนวณใด ๆ จะแพร่กระจายไปยังตัวเลขสุดท้าย
ตอนนี้ขั้นตอนสุดท้าย (การตรวจสอบการแปลง) เป็นจริงที่สำคัญพอสมควร หนึ่งในผู้ถือสถิติโลกก่อนหน้านี้ได้เรียกพวกเราออกมาเกี่ยวกับเรื่องนี้เพราะในขั้นต้นฉันไม่ได้ให้คำอธิบายที่เพียงพอเกี่ยวกับวิธีการทำงาน
ดังนั้นฉันจึงดึงตัวอย่างนี้จากบล็อกของฉัน:
N = # of decimal digits desired
p = 64-bit prime number
คำนวณ A โดยใช้เลขฐานสิบ 10 และ B โดยใช้เลขฐานสอง
หากA = B
ด้วย "ความน่าจะเป็นที่สูงมาก" การแปลงจะถูกต้อง
สำหรับการอ่านเพิ่มเติมดูโพสต์บล็อกของฉันPi - 5 ล้านล้านหลัก