บทนำ
แรงบันดาลใจจากวิดีโอล่าสุดมากติดอัศวิน - Numberphile , ฉันมากับความท้าทาย
ลำดับอัศวินขังอยู่เป็นลำดับจำนวนเต็ม จำกัด ของระยะเวลาในปี 2016 ตั้งแต่วันที่ 1 และมีกฎการก่อสร้างต่อไปนี้:
- เขียนเกลียวจำนวนในลักษณะดังต่อไปนี้:
17 16 15 14 13 ...
18 5 4 3 12 ...
19 6 1 2 11 ...
20 7 8 9 10 ...
21 22 23 24 25 ...
- วางอัศวินในวันที่ 1
- ย้ายอัศวินไปยังกริดด้วยหมายเลขที่เล็กที่สุดที่สามารถไปได้ซึ่งไม่เคยมีการเยี่ยมชมมาก่อนตามกฎของหมากรุก (เช่น 2 หน่วยในแนวตั้งและ 1 หน่วยในแนวนอนหรือในทางกลับกัน)
- ทำซ้ำจนกว่าอัศวินจะติด
นี่คือสามขั้นตอนแรก:
ขั้นตอนที่ 1
17 [16] 15 [14] 13
[18] 5 4 3 [12]
19 6 < 1> 2 11
[20] 7 8 9 [10]
21 [22] 23 [24] 25
การเคลื่อนไหวที่เป็นไปได้คือ 10, 12, 14, 16, 18, 20, 22, 24 ซึ่งน้อยที่สุดคือ 10 ดังนั้นเทอมที่สองคือ 10
ขั้นตอนที่ 2
4 [ 3] 12 [29] 54
( 1) 2 11 28 [53]
8 9 <10> 27 52
[23] 24 25 26 [51]
46 [47] 48 [49] 50
การเคลื่อนไหวที่เป็นไปได้คือ1 , 3, 23, 29, 47, 49, 51, 53, ซึ่งน้อยที่สุดคือ 3 ดังนั้นเทอมที่สามคือ 3
ขั้นตอนที่ 3
35 [34] 33 [32] 31
[16] 15 14 13 [30]
5 4 < 3> 12 29
[ 6] ( 1) 2 11 [28]
7 [ 8] 9 (10) 27
การเคลื่อนไหวที่เป็นไปได้คือ 6, 8, 10 , 16, 28, 30, 32, 34, ซึ่งน้อยที่สุดคือ 6 ดังนั้นเทอมที่สี่คือ 6
ลำดับดาวด้วย:
1 10 3 6 9 4 7 2 5 8 11 14 ...
และจบลงด้วย
... 2099 2284 2477 2096 2281 2474 2675 2884 3101 2880 2467 2084
ท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่สั้นที่สุดโดยรับจำนวนเต็มในช่วง[1, 2016]
(หรือ[0, 2015]
ถ้าใช้ดัชนี 0) เป็นอินพุตให้ป้อนตัวเลขที่ดัชนีนั้นในลำดับอัศวินติดอยู่ คุณสามารถเลือกที่จะจัดทำดัชนีลำดับด้วยดัชนี 0 หรือดัชนี 1 แต่คุณต้องระบุรูปแบบการจัดทำดัชนีที่คุณใช้
กรณีทดสอบ (1 ดัชนี)
n | s(n)
-----+-----
1 | 1
2 | 10
3 | 3
6 | 4
11 | 11
21 | 23
51 | 95
101 | 65
201 | 235
501 | 761
1001 | 1069
2001 | 1925
2016 | 2084
สำหรับผลลัพธ์ที่เป็นไปได้ทั้งหมดโปรดดูที่หน้านี้
เกณฑ์การชนะ
รหัสที่สั้นที่สุดของแต่ละภาษาชนะ มีข้อ จำกัด เกี่ยวกับช่องโหว่มาตรฐาน
12851850258