ลำดับ SUDSI ( su m, d ifference, s wap, i ncrement) เป็นลำดับเลขจำนวนเต็มอยากรู้อยากเห็นที่ปรากฏขึ้นเพื่อแสดงพฤติกรรมที่ค่อนข้างวุ่นวาย สามารถสร้างได้ดังนี้:
ให้Sเป็นรายการจำนวนธรรมชาติที่ไม่มีที่สิ้นสุด: 1 2 3 4 5 6 ...
. Let S ฉันหมายถึงหนึ่งในการจัดทำดัชนีฉันองค์ประกอบของ TH S ดังนั้นเริ่มแรก S 1คือ 1, S 2คือ 2 ฯลฯ (ไม่มีS 0 )
เริ่มต้นด้วยS 1และS 2 ...
- คำนวณผลรวมของพวกเขา:
sum = S1 + S2
- คำนวณความแตกต่างที่แท้จริงของพวกเขา (อันที่ใหญ่กว่าลบอันที่เล็กกว่า):
diff = |S1 - S2|
สลับสองค่าในSที่ดัชนีของผลรวมและส่วนต่าง:
swap(Ssum, Sdiff)
เพิ่มดัชนีของS ที่คุณกำลังทำงานด้วย ครั้งต่อไปคุณจะคำนวณผลรวมและความแตกต่างของS 2และS 3และเวลาหลังจากนั้นจะเป็นS 3และS 4เป็นต้น
- ทำซ้ำขั้นตอนนี้ไปเรื่อย ๆ
ต่อไปนี้เป็นขั้นตอนแรกของSเนื่องจากกระบวนการนี้ใช้ วงเล็บเหลี่ยม[]
ล้อมรอบสองค่าที่กำลังจะถูกสรุปและแตกต่าง
ต้นฉบับS :
[1 2] 3 4 5 6 7 8 9 10 11 12 ...
หลังจากเปลี่ยนS 3 ( 3 = 1 + 2
) และS 1 ( 1 = |1 - 2|
) แล้ว:
3 [2 1] 4 5 6 7 8 9 10 11 12 ...
หลังจากเปลี่ยนS 3และS 1 แล้ว :
1 2 [3 4] 5 6 7 8 9 10 11 12 ...
หลังจากเปลี่ยนS 7และS 1 แล้ว :
7 2 3 [4 5] 6 1 8 9 10 11 12 ...
หลังจากเปลี่ยนS 9และS 1 แล้ว :
9 2 3 4 [5 6] 1 8 7 10 11 12 ...
หลังจากเปลี่ยนS 11และS 1 แล้ว :
11 2 3 4 5 [6 1] 8 7 10 9 12 ...
หลังจากเปลี่ยนS 7และS 5 แล้ว :
11 2 3 4 1 6 [5 8] 7 10 9 12 ...
เป็นต้น
ลำดับ SUDSI ถูกกำหนดเป็นลำดับขององค์ประกอบแรกในแต่ละรายการเหล่านี้ ดังนั้นแง่สองสามตัวแรกของลำดับ SUDSI 1 3 1 7 9 11 11
มี
นี่คือ 200 คำแรกของลำดับ SUDSI (20 ต่อบรรทัด):
1 3 1 7 9 11 11 11 15 15 19 19 19 19 19 19 19 19 19 19
19 19 19 19 19 19 19 19 57 59 59 59 59 59 59 59 59 59 77 79
81 83 85 87 89 91 91 91 91 91 91 91 91 91 91 91 91 91 115 115
121 123 125 127 127 127 127 127 137 139 141 143 145 147 147 147 147 147 147 147
147 147 147 147 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167
167 167 167 167 209 211 211 211 211 211 221 223 223 223 223 223 223 223 223 223
223 223 243 243 243 243 243 243 257 259 261 263 263 263 263 263 263 263 263 263
263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263
263 263 325 327 329 331 331 331 331 331 331 331 331 331 349 351 351 351 351 351
361 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363
มันไม่ชัดเจน (สำหรับฉันอย่างน้อย) ว่าใครจะทำนายคำศัพท์ในอนาคต เพียงรู้สึกปลอดภัยที่จะบอกว่าคำศัพท์นั้นแปลกเสมอไม่ลด (หลังจากเทอมที่สอง) และมีการทำซ้ำจำนวนมากหลายครั้ง
ท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มบวกnแล้วพิมพ์หรือส่งคืนคำที่nของลำดับ SUDSI ตัวอย่างเช่นถ้าnเป็น 1 ออกเป็น1
ถ้าnเป็น 2 ผลลัพธ์คือ3
ถ้าnเป็น 200 363
ผลลัพธ์คือ
รับอินพุตด้วยวิธีปกติ (stdin / command line / function arg)
คำตอบที่สั้นที่สุดเป็นไบต์ชนะ
(ไซต์นั้นเข้ารหัสสิ่งต่าง ๆ ใน UTF-8 แต่คุณสามารถใช้การเข้ารหัสที่มีอยู่ในแบบที่คุณต้องการได้)
โบนัส Mathy: (อาจมีสิทธิ์ได้รับรางวัล)
- บอกฉันเพิ่มเติมเกี่ยวกับลำดับ SUDSI อะไรคือรูปแบบพื้นฐานของตัวเลขที่เป็นส่วนหนึ่งของมันและมีกี่แบบ (และแบบนั้น) (ฉันไม่สามารถหา SUDSI บนOEISได้)