นี่คือวิธีการกำหนดลำดับ Kolakoski (OEIS A000002 ):
ลำดับ Kolakoski เป็นลำดับที่มี
1และ2และnองค์ประกอบที่สามของลำดับคือความยาวของnกลุ่ม th ขององค์ประกอบที่เท่าเทียมกัน (เรียกใช้) ในลำดับนั้น 20 คำแรกของลำดับและความยาวตามลำดับคือ:1 2 2 1 1 2 1 2 2 1 2 2 1 1 2 1 1 2 2 1 - --- --- - - --- - --- --- - --- --- - 1 2 2 1 1 2 1 2 2 1 2 2 1โดยพื้นฐานแล้วความยาวของกลุ่มขององค์ประกอบที่เท่ากันของลำดับ Kolakoski คือลำดับ Kolakoski นั้นเอง
จนถึงตอนนี้ดีมาก แต่ทำไมเราควร จำกัด ตนเอง1และ2? เราจะไม่ไป! กำหนดสองอินพุตอาร์เรย์ของจำนวนเต็มบวกAและจำนวนเต็มNคืนค่าแรกNเงื่อนไขของ Kolakoski Aเหมือนลำดับที่กำหนดโดยขี่จักรยานผ่าน เพื่อให้เข้าใจได้ดีขึ้นนี่คือตัวอย่างการทำงานที่มีความยาวของกลุ่มที่เพิ่มใหม่ในวงเล็บ:
A = [2, 3, 1]
N = 25
2: [[2], 2 ]
3: [ 2 ,[2], 3 , 3 ]
1: [ 2 , 2 ,[3], 3 , 1 , 1 , 1 ]
2: [ 2 , 2 , 3 ,[3], 1 , 1 , 1 , 2 , 2 , 2 ]
3: [ 2 , 2 , 3 , 3 ,[1], 1 , 1 , 2 , 2 , 2 , 3 ]
1: [ 2 , 2 , 3 , 3 , 1 ,[1], 1 , 2 , 2 , 2 , 3 , 1 ]
2: [ 2 , 2 , 3 , 3 , 1 , 1 ,[1], 2 , 2 , 2 , 3 , 1 , 2 ]
3: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 ,[2], 2 , 2 , 3 , 1 , 2 , 3 , 3 ]
1: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 ,[2], 2 , 3 , 1 , 2 , 3 , 3 , 1 , 1 ]
2: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 , 2 ,[2], 3 , 1 , 2 , 3 , 3 , 1 , 1 , 2 , 2 ]
3: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 , 2 , 2 ,[3], 1 , 2 , 3 , 3 , 1 , 1 , 2 , 2 , 3 , 3 , 3 ]
1: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 , 2 , 2 , 3 ,[1], 2 , 3 , 3 , 1 , 1 , 2 , 2 , 3 , 3 , 3 , 1 ]
2: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 , 2 , 2 , 3 , 1 ,[2], 3 , 3 , 1 , 1 , 2 , 2 , 3 , 3 , 3 , 1 , 2 , 2 ]
C: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 , 2 , 2 , 3 , 1 , 2 , 3 , 3 , 1 , 1 , 2 , 2 , 3 , 3 , 3 , 1 , 2 , 2 ]
นี่เป็นอีกตัวอย่างหนึ่งของการเป็นผู้นำ 1 :
A = [1, 2, 3]
N = 10
1: [[1]]
2: [ 1 ,[2], 2 ]
3: [ 1 , 2 ,[2], 3 , 3 ]
1: [ 1 , 2 , 2 ,[3], 3 , 1 , 1 , 1 ]
2: [ 1 , 2 , 2 , 3 ,[3], 1 , 1 , 1 , 2 , 2 , 2 ]
C: [ 1 , 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 , 2 ]
อย่างที่คุณเห็นด้านบนผลลัพธ์สุดท้ายถูกตัดเป็นN = 10องค์ประกอบ nองค์ประกอบ TH ควรจะนานเท่าไหร่nกลุ่ม TH เท่ากับองค์ประกอบคือแม้ว่าองค์ประกอบของตัวเองอยู่ในกลุ่มมันหมายถึง ในกรณีข้างต้นกลุ่มแรก1หมายถึงกลุ่มดังกล่าวกลุ่มแรกซึ่งก็คือกลุ่ม1แรกและกลุ่มแรก2หมายถึงกลุ่มดังกล่าวกลุ่มที่สองซึ่งเริ่มต้นด้วยกลุ่มดังกล่าว
กฎระเบียบ
- คุณอาจคิดว่า
Aจะไม่มีองค์ประกอบที่เท่ากันติดต่อกันสองรายการขึ้นไปAอาจมีจำนวนเต็มมากกว่าหนึ่งครั้ง แต่องค์ประกอบแรกและสุดท้ายจะไม่เท่ากันและAจะมีองค์ประกอบอย่างน้อย 2 (เช่น[1, 2, 2, 3],[2, 4, 3, 1, 2]และ[3]จะไม่ได้รับ) นั่นเป็นเพราะหากมีองค์ประกอบที่เท่ากันติดต่อกันผลสุดท้ายจะเป็นคำนำหน้าที่ไม่ถูกต้องสำหรับลำดับดังกล่าว - คุณอาจจะคิด
Aมีจำนวนเต็มบวกเท่านั้น (เช่นลำดับจะไม่ได้กำหนดไว้) - คุณอาจจะคิด
Nเป็นจำนวนเต็มไม่เป็นลบ (N >= 0) - คุณไม่สามารถคืนข้อกำหนดมากกว่าที่ร้องขอ
- ใช้ช่องโหว่มาตรฐานใดก็ได้เป็นสิ่งต้องห้ามอย่างเคร่งครัด
- คุณสามารถใช้วิธีI / O ที่สมเหตุสมผลฉันวิธีการที่เหมาะสม
- คำตอบของคุณไม่ต้องทำงานเกินขีด จำกัด ของภาษาธรรมชาติ แต่ในทางทฤษฎีอัลกอริทึมของคุณควรจะทำงานสำหรับปัจจัยการผลิตที่มีขนาดใหญ่โดยพลการและจำนวนเต็ม
- นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดชนะ
กรณีทดสอบ
[5, 1, 2], 0 -> []
[2, 3, 1], 25 -> [2, 2, 3, 3, 1, 1, 1, 2, 2, 2, 3, 1, 2, 3, 3, 1, 1, 2, 2, 3, 3, 3, 1, 2, 2]
[1, 2, 3], 10 -> [1, 2, 2, 3, 3, 1, 1, 1, 2, 2]
[1, 2], 20 -> [1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1]
[1, 3], 20 -> [1, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 3]
[2, 3], 50 -> [2, 2, 3, 3, 2, 2, 2, 3, 3, 3, 2, 2, 3, 3, 2, 2, 3, 3, 3, 2, 2, 2, 3, 3, 3, 2, 2, 3, 3, 2, 2, 2, 3, 3, 3, 2, 2, 3, 3, 2, 2, 2, 3, 3, 3, 2, 2, 2, 3, 3]
[7, 4], 99 -> [7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 7, 7, 7, 7, 4, 4, 4, 4, 7, 7, 7, 7, 4, 4, 4, 4, 7, 7, 7, 7, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 4]
[1, 2, 3], 5 -> [1, 2, 2, 3, 3]
[2, 1, 3, 1], 2 -> [2, 2]
[1, 3, 5], 2 -> [1, 3]
[2, 3, 2, 4], 10 -> [2, 2, 3, 3, 2, 2, 2, 4, 4, 4]