3
จำนวนจุดลอยตัวโดยประมาณที่มีความแม่นยำ n หลัก
เรามีจำนวนจุดลอยrระหว่าง 0 และ 1, pและจำนวนเต็ม ค้นหาเศษส่วนของจำนวนเต็มด้วยตัวหารที่เล็กที่สุดซึ่งใกล้เคียงrกับpความแม่นยำอย่างน้อย-digit อินพุต: r(หมายเลขจุดลอยตัว) และp(จำนวนเต็ม) ผลลัพธ์: aและbจำนวนเต็มโดยที่ a/b(ลอย) ประมาณrจนกระทั่งpตัวเลข b เป็นไปได้ที่น้อยที่สุดเช่นจำนวนเต็มบวก ตัวอย่างเช่น: ถ้าr=0.14159265358979และp=9, แล้วผลที่ได้คือa=4687และb=33102, 4687/33102=0.1415926530119026เพราะ การแก้ปัญหาใด ๆ จะต้องทำงานในทางทฤษฎีด้วยความแม่นยำโดยพลการ แม่นยำหมายถึงจำนวนของตัวเลขหลังจากที่ " 0." rใน ดังนั้นหากr=0.0123และp=3แล้วควรเริ่มต้นด้วยa/b 0.012หากpตัวเลขแรกของส่วนที่เป็นเศษส่วนของr0 เป็นพฤติกรรมที่ไม่ได้กำหนดเป็นที่ยอมรับ เกณฑ์การชนะ: อัลกอริทึมเร็วที่สุดชนะ ความเร็วถูกวัดใน O (p) หากมีอัลกอริธึมที่เร็วที่สุดหลายตัว คำตอบของฉันถูกแยกออกจากกลุ่มผู้ชนะที่เป็นไปได้ ps คณิตศาสตร์ส่วนที่เป็นจริงได้ง่ายขึ้นมากเป็นดูเหมือนว่าฉันขอแนะนำให้อ่านนี้โพสต์