ดัดแปลงมาจากปริศนาห้าสิบสามสิบแปด
พื้นหลัง
ตรวจสอบลำดับอนันต์ต่อไปนี้:
3 3 3 2 3 3 3 2 3 3 3 2 3 3 2 3 3 3 2 ...
สมมติว่ามีการเรียงลำดับดัชนี 1 i
จำนวนวันในลำดับกำหนดจำนวน3
s มีก่อนi
วัน2
และต่อไปนี้ก่อน ๆ2
s ดังนั้นเมื่อลำดับเริ่มต้นด้วย3
ลำดับจะต้องเริ่มต้น3 3 3 2
และเนื่องจากมีสาม3
s ที่จุดเริ่มต้นของลำดับที่ลำดับ3 3 3 2
จะต้องทำซ้ำตัวเองสามครั้ง หลังจากนั้นคุณก็มาถึง3 3 2
2
เนื่องจากจำนวนที่สี่ในลำดับคือ
FiveThirtyEight ปริศนาขอวงเงินอัตราส่วนของสามเพื่อ twos (ซึ่งผมจะไม่เสียนี่) i
แต่คุณยังสามารถขอให้สิ่งที่อัตราส่วนสะสมคือหลังจากที่ดัชนี ตัวอย่างเช่นอัตราส่วนที่i=4
เป็น3/1 = 3
และที่มันเป็นi=15
11/4 = 2.75
รับทั่วไป
ตัวเลขที่กำหนดn
และk
เราสามารถสร้างลำดับที่คล้ายกันซึ่งเริ่มต้นด้วยn
และเช่นเดียวกับลำดับเดิมที่อธิบายหมายเลขที่ดัชนีi
กำหนดจำนวนn
s ที่แสดงก่อนi
th k
และถัดจากk
s ก่อนหน้า
ตัวอย่าง:
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 การจัดทำดัชนีแล้วข้อ จำกัด เกี่ยวกับการมีi
i ≥ 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
นี่คือรหัสกอล์ฟต่อภาษาดังนั้นรหัสที่สั้นที่สุดในแต่ละภาษาจึงเป็นผู้ชนะ
/
หรือ:
เพิ่มความยุ่งยากที่ไม่จำเป็นให้กับความท้าทาย