นี่คือวิธีการกำหนดลำดับ 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]