จำนวนเต็มที่ไม่เป็นลบนั้นเบื่อที่จะมีเพื่อนบ้าน * สองคนเหมือนกันเสมอดังนั้นพวกเขาจึงตัดสินใจรวมสิ่งต่าง ๆ เข้าด้วยกันเล็กน้อย อย่างไรก็ตามพวกเขายังขี้เกียจและต้องการที่จะอยู่ใกล้กับตำแหน่งเดิมมากที่สุด
พวกเขามาพร้อมกับอัลกอริทึมต่อไปนี้:
- องค์ประกอบแรกคือ 0
- องค์ประกอบเป็นจำนวนที่น้อยที่สุดที่ยังไม่อยู่ในลำดับและที่ไม่ได้เป็นเพื่อนบ้านขององค์ประกอบ
สิ่งนี้จะสร้างลำดับที่ไม่สิ้นสุดต่อไปนี้:
0,2,4,1,3,5,7,9,6,8,10,12,14,11,13,15,17,19,16,18,20,22,24,21,23,25,27,29,26,28 ...
0
เป็นองค์ประกอบแรก 1
เป็นจำนวนที่น้อยที่สุดยังไม่ได้อยู่ในลำดับ 0
แต่มันเป็นของเพื่อนบ้าน จำนวนที่น้อยที่สุดถัดไปคือ2
ดังนั้นมันจึงเป็นองค์ประกอบที่สองของลำดับ ตอนนี้ตัวเลขที่เหลือเป็น1,3,4,5,6,...
แต่ขณะที่ทั้งสอง1
และ3
เป็นเพื่อนบ้านของ2
, 4
เป็นสมาชิกที่สามของลำดับ ในฐานะที่1
ไม่ใช่เพื่อนบ้านของ4
มันในที่สุดก็สามารถใช้สถานที่เป็นองค์ประกอบที่สี่
งาน
เขียนฟังก์ชั่นหรือโปรแกรมเป็นไบต์น้อยที่สุดซึ่งสร้างลำดับข้างต้น
คุณอาจ
- เอาท์พุทลำดับไม่สิ้นสุด
- รับอินพุตและส่งคืนองค์ประกอบของลำดับหรือ
- ใช้การป้อนข้อมูลและกลับคนแรกที่องค์ประกอบของลำดับ
ทั้งการทำดัชนีเป็นศูนย์หรือหนึ่งครั้งนั้นใช้ได้ในกรณีที่คุณเลือกหนึ่งในสองตัวเลือกหลัง
คุณไม่จำเป็นต้องทำตามอัลกอริทึมที่ระบุไว้ข้างต้นวิธีการใด ๆ ที่สร้างลำดับเดียวกันก็ใช้ได้
แรงบันดาลใจจากกอล์ฟรหัสการเปลี่ยนแปลงที่ดีที่สุด ปรากฎนี้เป็นA277618
* Zero มีเพื่อนบ้านเพียงคนเดียวและไม่สนใจ