พื้นหลัง
ลำดับ Davenport-Schinzelมีสองตัวแปรจำนวนเต็มบวกและd
n
เราจะแสดงว่าชุดของทุกลำดับ Davenport-Schinzel DS(d,n)
สำหรับพารามิเตอร์ที่กำหนดโดย
พิจารณาลำดับทั้งหมดของตัวเลขธรรมชาติ1
เพื่อn
รวมซึ่งตอบสนอง:
- ไม่มีตัวเลขสองตัวติดต่อกันในลำดับที่เหมือนกัน
- ไม่มีความยาวที่มากกว่ากัน (ไม่จำเป็นต้องต่อเนื่องกัน)
d
ซึ่งสลับไปมาระหว่างตัวเลขสองจำนวนที่แตกต่างกัน
อนุญาตL
แสดงความยาวสูงสุดของลำดับดังกล่าว (ที่กำหนดd
และn
) จากนั้นเป็นชุดของลำดับดังกล่าวทั้งหมดที่มีความยาวDS(d,n)
L
ตัวอย่างบางส่วนอาจช่วยได้ อนุญาตd = 4
, n = 3
. ลำดับที่ยาวที่สุดที่เป็นไปได้ที่มีข้อ จำกัด L = 8
เหล่านี้มี ดังนั้นต่อไปนี้เป็นสมาชิกของDS(4,3)
:
[1, 2, 1, 3, 1, 3, 2, 3]
ไม่มีตัวเลขที่เหมือนกันติดต่อกันและมีการเรียงลำดับความยาวสลับกัน4
แต่ไม่มีอีกต่อไป:
1 2 1 2
1 2 1 2
1 3 1 3
1 3 1 3
2 3 2 3
2 3 2 3
1 3 1 3
1 3 1 3
ตัวอย่างต่อไปนี้ไม่ได้อยู่ในDS(4,3)
:
[1, 2, 2, 3, 1, 3, 2, 3] # Two consecutive 2's.
[1, 2, 1, 3, 1, 3, 2, 1] # Contains alternating subsequences of length 5.
[1, 2, 1, 3, 1, 3, 2] # Longer valid sequences for d = 4, n = 3 exist.
สำหรับข้อมูลเพิ่มเติมดูMathWorldและOEISและการอ้างอิงที่พวกเขาแสดงรายการ
ความท้าทาย
ได้รับสองจำนวนเต็มบวกn
และd
สร้างใด ๆ ลำดับ Davenport-Schinzel DS(d,n)
ใน โปรดทราบว่าโดยทั่วไปจะไม่ซ้ำกันดังนั้นให้แสดงผลลัพธ์ที่ถูกต้องเพียงรายการเดียว
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นรับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด) อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ฟังก์ชันและส่งคืนผลลัพธ์จากฟังก์ชันหรือพิมพ์ไปยัง STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด)
คุณสามารถใช้สตริงหรือรูปแบบรายการที่สะดวกไม่คลุมเครือสำหรับเอาท์พุท
นี่คือรหัสกอล์ฟดังนั้นการส่งที่สั้นที่สุด (เป็นไบต์) ชนะ
ลำดับความยาว
เนื่องจากซีเควนซ์นั้นไม่เหมือนกันจึงไม่มีการใช้ตัวอย่างบุคคลในการท้าทายนี้มากนัก อย่างไรก็ตามปัญหาความถูกต้องทั่วไปทั้งสองนั้นค่อนข้างง่ายต่อการตรวจสอบเอาต์พุตดังนั้นคำถามหลักคือว่าลำดับมีความยาวที่ถูกต้อง (หรือมีลำดับที่ถูกต้องอีกต่อไป) ดังนั้นนี่คือรายการของ1 ที่ รู้จักL
สำหรับการได้รับd
และn
:
\
d\n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
\-----------------------------------------------------------
1 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
3 | 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
4 | 1 4 8 12 17 22 27 32 37 42 47 53 58 64 69 75 81 86 92 98
5 | 1 5 10 16 22 29 ...
6 | 1 6 14 23 34 ...
7 | 1 7 16 28 41 ...
8 | 1 8 20 35 53 ...
9 | 1 9 22 40 61 ...
10 | 1 10 26 47 73 ...
คุณต้องไม่เข้ารหัสข้อมูลใด ๆ จากตารางนี้ในการส่งของคุณ
1ตารางนี้มาจากปี 1994 ดังนั้นอาจมีความคืบหน้ามากขึ้นตั้งแต่นั้นมา แต่ฉันสงสัยว่าการส่งใด ๆ จะสามารถจัดการกับรายการที่มีขนาดใหญ่กว่าในตารางนี้ได้ในเวลาอันสมควร