Фон
Послідовність Давенпорта-Шінзеля має два цілих параметри d
і n
. Позначимо набір усіх послідовностей Давенпорта-Шінзеля для заданих параметрів через 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
генерують будь-яку послідовність Давенпорта-Шінзеля в 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 року, тому, можливо, з цього часу було досягнуто більшого прогресу, але я сумніваюся, що будь-яке подання зможе обробити навіть більші записи в цій таблиці за розумну кількість часу.