เจาะลึก 1/998001: เศษส่วนคณิตศาสตร์ที่สร้างตัวเลขเรียงกัน
ไขปริศนาคณิตศาสตร์เมื่อคำนวณเศษส่วน 1/998001 แล้วได้ตัวเลข 3 หลักเรียงลำดับตั้งแต่ 000 เป็นต้นไป แต่กลับหายไปหนึ่งจำนวนคือ 998

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- เศษส่วน 1/998001 สร้างลำดับตัวเลข 3 หลักเรียงต่อเนื่อง
- เกิดจากการยกกำลังสองของตัวส่วน เช่น 998001 เท่ากับ 999 ยกกำลังสอง
- ตัวเลข 998 หายไปเนื่องจากการทดค่าจาก 999 และ 1000
- สามารถตรวจสอบผลลัพธ์ความแม่นยำสูงนี้ได้ผ่านภาษา Python
โลกคณิตศาสตร์มักมีความมหัศจรรย์ซ่อนอยู่เสมอ ล่าสุดได้มีการหยิบยกกรณีศึกษาที่น่าสนใจของเศษส่วน 1/998001 ซึ่งเมื่อแปลงเป็นเลขทศนิยมแล้ว จะได้ชุดตัวเลข 3 หลักเรียงลำดับเพิ่มขึ้นทีละหนึ่งอย่างต่อเนื่อง ได้แก่ 0.000001002003004005006 ไปเรื่อยๆ โดยปรากฏตัวเลข 000, 001, 002, 003, 004, 005 และค่าอื่นๆ ตามลำดับ
ปรากฏการณ์ดังกล่าวเกิดขึ้นเนื่องจากตัวส่วน 998001 นั้นแท้จริงแล้วคือผลลัพธ์ของ 999 ยกกำลังสอง หรือเขียนในรูปสัญกรณ์ทางคณิตศาสตร์ได้ว่าเท่ากับ 1 หารด้วย (10 ยกกำลัง 3 ลบ 1) ยกกำลังสอง ซึ่งรูปแบบการกระจายตัวลักษณะนี้ยังสามารถพบได้ในเศษส่วนอื่นๆ ที่มีความเกี่ยวข้องกัน เช่น:
- 1/81 ให้ค่าทศนิยมที่สร้างตัวเลขตั้งแต่ 0 ถึง 9 ครบถ้วน แต่ตัวเลข 8 ถูกข้ามไป
- 1/9801 ให้ค่าทศนิยมที่สร้างตัวเลข 2 หลักตั้งแต่ 00 ถึง 99 แต่ตัวเลข 98 ถูกข้ามไป
- 1/998001 ให้ค่าทศนิยมที่สร้างตัวเลข 3 หลักเรียงกัน แต่ตัวเลข 998 หายไป
คำถามสำคัญคือเหตุใดตัวเลข 998 จึงหายไปจากการเรียงลำดับนี้ ทั้งที่ตัวเลขก่อนหน้าและหลังจากนั้นปรากฏขึ้นครบถ้วน คำตอบทางคณิตศาสตร์ระบุว่า ทุกๆ พจน์จะเพิ่มค่าทีละ +1 ให้กับบล็อก 3 หลักของตนเอง ทว่าเมื่อคำนวณมาถึงจุดที่ n เท่ากับ 998, 999 และ 1000 ค่าทดจากการคำนวณของ 999 และ 1000 ได้ส่งผลกระทบย้อนกลับมาดูดกลืนบล็อกของ 998 ทำให้ค่าดังกล่าวถูกผนวกกลายเป็น 999 ไปโดยปริยาย

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
ในมุมมองเชิงวิทยาการคอมพิวเตอร์และทฤษฎีจำนวน ปรากฏการณ์เศษส่วนวนซ้ำลักษณะนี้ไม่ได้เป็นเพียงแค่ความบังเอิญทางตัวเลข แต่มีบทบาทสำคัญในการออกแบบอัลกอริทึมสร้างตัวเลขสุ่มเทียม (Pseudo-random number generation) การออกแบบดิจิทัลฟิลเตอร์ และโค้ดแก้ไขข้อผิดพลาด (Error-correcting codes) ที่ต้องการชุดบิตที่มีความหนาแน่นและมีคาบการวนซ้ำที่แน่นอน การเข้าใจกลไกการทดเลขและการกระจายตัวของเศษส่วนจึงช่วยให้นักพัฒนาสามารถนำไปประยุกต์ใช้กับงานคำนวณความแม่นยำสูงได้ดียิ่งขึ้น
เราสามารถพิสูจน์และตรวจสอบชุดข้อมูลดังกล่าวนี้ด้วยตนเองผ่านภาษา Python โดยใช้โมดูล decimal เพื่อกำหนดค่าความแม่นยำสูง ซึ่งเมื่อทดสอบพิมพ์ผลลัพธ์ 10 บล็อกแรกจะได้ค่าเริ่มต้นตั้งแต่ '000' ถึง '009' แต่เมื่อตรวจสอบบล็อกรอบๆ เลข 998 จะพบชุดข้อมูลแสดงผลเป็น ['995', '996', '997', '999', '000', '001', '002'] ซึ่งยืนยันได้อย่างชัดเจนว่าบล็อก 998 ได้หายไปจากลูปการทำงานจริง
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น