배경
데이븐포트-Schinzel 시퀀스는 두 개의 양의 정수 파라미터 보유 d및 n. 주어진 매개 변수에 대한 모든 Davenport-Schinzel 시퀀스 세트를로 표시합니다 DS(d,n).
자연수의 모든 시퀀스 고려 1에 n만족 포함을, :
- 시퀀스에서 두 개의 연속 된 숫자는 동일하지 않습니다.
- 보다 큰 길이의 하위 시퀀스 (연속적인 것은 아님)가 없으며
d두 개의 다른 숫자 사이에서 번갈아 나타납니다.
하자 L그러한 시퀀스의 최대 길이를 나타낸다 (부여 d하고 n). 그런 다음 DS(d,n)length가있는 모든 이러한 시퀀스의 집합입니다 L.
몇 가지 예가 도움이 될 수 있습니다. 보자 d = 4, n = 3. 이러한 제약 조건이있는 가장 긴 시퀀스는 다음과 같습니다 L = 8. 다음은 멤버입니다 DS(4,3).
[1, 2, 1, 3, 1, 3, 2, 3]
연속적인 동일한 수는 없으며 length의 교번하는 하위 시퀀스가 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 년 이후로 진행되었으므로 그 이후로 더 많은 진전이 있었을 것입니다. 그러나 모든 제출물이이 표의 더 큰 출품작도 합리적인 시간 안에 처리 할 수 있을지 의심됩니다.