22
ส่งออกจำนวนตรรกยะที่ n ตามลำดับ Stern-Brocot
ลำดับสเติร์น-Brocotเป็น Fibonnaci เหมือนลำดับซึ่งสามารถสร้างดังนี้ เริ่มต้นลำดับด้วย s(1) = s(2) = 1 ตั้งเคาน์เตอร์ n = 1 ผนวกs(n) + s(n+1)เข้ากับลำดับ ผนวกs(n+1)เข้ากับลำดับ เพิ่มขึ้นnกลับไปยังขั้นตอนที่ 3 นี่เทียบเท่ากับ: ในบรรดาคุณสมบัติอื่น ๆ ลำดับ Stern-Brocot สามารถใช้เพื่อสร้างจำนวนตรรกยะเชิงบวกที่เป็นไปได้ทั้งหมด จำนวนตรรกยะทุกตัวจะถูกสร้างขึ้นหนึ่งครั้งและจะปรากฏในเงื่อนไขที่ง่ายที่สุดเสมอ ตัวอย่างเช่น1/3เป็นจำนวนตรรกยะที่ 4 ในลำดับ แต่ตัวเลขที่เทียบเท่า2/6และ3/9อื่น ๆ จะไม่ปรากฏเลย เราสามารถกำหนดจำนวนตรรกยะที่ n เป็นr(n) = s(n) / s(n+1)โดยที่s(n)หมายเลขสเติร์น - โบรคต์ดังที่อธิบายไว้ข้างต้น ความท้าทายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่จะส่งออกจำนวนเหตุผลที่ n ที่สร้างขึ้นโดยใช้ลำดับ Stern-Brocot อัลกอริทึมที่อธิบายไว้ข้างต้นได้รับการจัดทำดัชนี 1 ชุด ถ้ารายการของคุณถูกจัดทำดัชนี 0 …