ดัดแปลงมาจากปริศนาห้าสิบสามสิบแปด
พื้นหลัง
ตรวจสอบลำดับอนันต์ต่อไปนี้:
3 3 3 2 3 3 3 2 3 3 3 2 3 3 2 3 3 3 2 ...
สมมติว่ามีการเรียงลำดับดัชนี 1 iจำนวนวันในลำดับกำหนดจำนวน3s มีก่อนiวัน2และต่อไปนี้ก่อน ๆ2s ดังนั้นเมื่อลำดับเริ่มต้นด้วย3ลำดับจะต้องเริ่มต้น3 3 3 2และเนื่องจากมีสาม3s ที่จุดเริ่มต้นของลำดับที่ลำดับ3 3 3 2จะต้องทำซ้ำตัวเองสามครั้ง หลังจากนั้นคุณก็มาถึง3 3 22เนื่องจากจำนวนที่สี่ในลำดับคือ
FiveThirtyEight ปริศนาขอวงเงินอัตราส่วนของสามเพื่อ twos (ซึ่งผมจะไม่เสียนี่) iแต่คุณยังสามารถขอให้สิ่งที่อัตราส่วนสะสมคือหลังจากที่ดัชนี ตัวอย่างเช่นอัตราส่วนที่i=4เป็น3/1 = 3และที่มันเป็นi=1511/4 = 2.75
รับทั่วไป
ตัวเลขที่กำหนดnและkเราสามารถสร้างลำดับที่คล้ายกันซึ่งเริ่มต้นด้วยnและเช่นเดียวกับลำดับเดิมที่อธิบายหมายเลขที่ดัชนีiกำหนดจำนวนns ที่แสดงก่อนith kและถัดจากks ก่อนหน้า
ตัวอย่าง:
n=2, k=5 ให้ลำดับ 2 2 5 2 2 5 2 2 2 2 2 5 2 2 5 ...
n=3, k=0 จะช่วยให้ 3 3 3 0 3 3 3 0 3 3 3 0 0 3 3 3 0 ...
n=1, k=3 จะช่วยให้ 1 3 1 1 1 3 1 3 1 3 1 3 1 1 1 3 1 ...
ความท้าทาย
เขียนฟังก์ชั่น / โปรแกรมและทำสิ่งต่อไปนี้ ใช้เป็นอินพุต:
- จำนวนเต็มบวก
n - จำนวนเต็มที่ไม่ใช่ค่าลบ
k ≠ n - จำนวนเต็มบวก
i > n
สองอินพุตแรกnและkกำหนดลำดับตามที่อธิบายไว้ข้างต้นและiเป็นดัชนี ฉันใช้การจัดทำดัชนี 1 ตัวในตัวอย่าง แต่คุณมีอิสระที่จะใช้ 0- หรือ 1 การจัดทำดัชนี ถ้า 0 การจัดทำดัชนีแล้วข้อ จำกัด เกี่ยวกับการมีii ≥ n
กับสามตัวเลขการส่งออกอัตราส่วนของnที่จะอยู่ในลำดับขึ้นไปและรวมถึงหมายเลขที่ดัชนีk iรูปแบบของผลลัพธ์อาจเป็นค่าทศนิยมที่มีความแม่นยำอย่างน้อย 5 หลักหรือค่าที่แน่นอนเป็นอัตราส่วนเช่น3524/837หรือ3524:837หรือ
ในรูปแบบทศนิยมตัวเลขหลักสุดท้ายสามารถปัดเศษได้ตามต้องการ อนุญาตให้มีค่าศูนย์และช่องว่างต่อท้าย
ในรูปแบบของสตริงตัวเลขทั้งสองจำเป็นต้องทำให้เป็นมาตรฐานเพื่อให้เป็น coprime ตัวอย่างเช่นถ้าอัตราส่วนคือ 22/4 11/2และ11:2เป็นที่ยอมรับ แต่22/4ไม่ใช่
ตัวอย่าง
n k i output
2 4 15 2.75 or 11/4
6 0 666 5.1101 or 557:109
50 89 64 63 or 63:1
3 2 1000 2.7453 or 733/267
9 12 345 9.4545 or 104/11
นี่คือรหัสกอล์ฟต่อภาษาดังนั้นรหัสที่สั้นที่สุดในแต่ละภาษาจึงเป็นผู้ชนะ
/หรือ:เพิ่มความยุ่งยากที่ไม่จำเป็นให้กับความท้าทาย