หมายเลขปืนลูกซองเป็นลำดับที่มีความหมายที่ค่อนข้างง่าย แต่บางโครงสร้างที่น่าสนใจ เริ่มต้นด้วยตัวเลขธรรมชาติ:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...
ทีนี้นำตัวเลขทั้งหมดที่ดัชนีหารด้วย2 , จัดกลุ่มเป็นคู่และสลับตัวเลขในแต่ละคู่:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, ...
^ ^ ^ ^ ^ ^ ^
<---> <---> <-----> <----
1, 4, 3, 2, 5, 8, 7, 6, 9, 12, 11, 10, 13, 16, ...
ตอนนี้ทำเช่นเดียวกันกับดัชนีหารด้วย3 :
1, 4, 3, 2, 5, 8, 7, 6, 9, 12, 11, 10, 13, 16, ...
^ ^ ^ ^
<------> <--------->
1, 4, 8, 2, 5, 3, 7, 6, 10, 12, 11, 9, 13, 16, ...
และสำหรับ4 , 5 , 6และอื่น ๆ :
1, 4, 8, 2, 5, 3, 7, 6, 10, 12, 11, 9, 13, 16, ...
1, 4, 8, 6, 5, 3, 7, 2, 10, 12, 11, 14, 13, 16, ...
1, 4, 8, 6, 12, 3, 7, 2, 10, 5, 11, 14, 13, 16, ...
1, 4, 8, 6, 12, 14, 7, 2, 10, 5, 11, 3, 13, 16, ...
...
หลังจากkขั้นตอนดังกล่าวหมายเลขk + 1แรกจะได้รับการแก้ไข ดังนั้นเราสามารถกำหนดลำดับอนันต์ของตัวเลข Shotgun เป็นขีด จำกัด ของการให้kไปที่อนันต์ 66 หมายเลขแรกคือ:
1, 4, 8, 6, 12, 14, 16, 9, 18, 20, 24, 26, 28, 22, 39, 15, 36, 35, 40, 38, 57, 34, 48, 49, 51, 44,
46, 33, 60, 77, 64, 32, 75, 56, 81, 68, 76, 58, 100, 55, 84, 111, 88, 62, 125, 70, 96, 91, 98, 95,
134, 72, 108, 82, 141, 80, 140, 92, 120, 156, 124, 94, 121, 52, 152, 145, ...
ข้อเท็จจริงที่สนุกสนาน:แม้จะได้มาโดยการอนุญาตตัวเลขธรรมชาติเท่านั้นลำดับนี้ไม่มีช่วงเวลาใด ๆ
ความท้าทาย
รับจำนวนเต็มn > 0
ค้นหาn
หมายเลขปืนลูกซองที่ คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ฟังก์ชันและส่งคืนเอาต์พุตหรือพิมพ์ไปที่ STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด)
นี่คือรหัสกอล์ฟดังนั้นการส่งที่สั้นที่สุด (เป็นไบต์) ชนะ
ลีดเดอร์
นี่เป็นคำตอบที่มากกว่าที่ฉันคิดเช่นเดียวกับหลาย ๆ คนที่แข่งขันกันในภาษาเดียวกัน ดังนั้นนี่คือ Stack Snippet เพื่อสร้างทั้งกระดานผู้นำปกติและภาพรวมของผู้ชนะตามภาษา
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:
# Language Name, N bytes
ที่N
มีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัวโดยการตีพวกเขาผ่าน ตัวอย่างเช่น
# Ruby, <s>104</s> <s>101</s> 96 bytes
10
, 21
, 25
และ30
ไม่ปรากฏอย่างใดอย่างหนึ่งเช่น
k
ทำซ้ำครั้งที่k
องค์ประกอบองค์ประกอบที่ในอาร์เรย์ได้รับการเปลี่ยน2k
ตำแหน่งและจะไม่ได้รับการสัมผัสอีกครั้งจนกว่าการ2k
ทำซ้ำครั้งที่ th ซึ่งในเวลานั้นได้รับการย้ายไปยัง4k
ตำแหน่งที่ นายกจะไม่ได้รับการเปลี่ยนใจจนกว่าจะถึงเวลาที่มันจะมาพูดดังนั้นทุกช่วงเวลาจะเดินไปข้างหน้า แต่เราสามารถทำรายชื่อผู้ที่ตกเป็นเหยื่อผู้บริสุทธิ์ได้อย่างง่ายดายเพียงพิมพ์องค์ประกอบแรกที่จะทำการเปลี่ยนในการทำซ้ำ 2 และการทำซ้ำแต่ละครั้ง รายการไป: 2, 3, 5, 7, 10, 11, 13, 21, 17, 19, 30, 23, 27, 25, 29, 31, 45, 42, 37, 54, 41, 43, 65, ...