Адаптовано з цієї загадки FiveThirtyEight .
Фон
Вивчіть таку нескінченну послідовність:
3 3 3 2 3 3 3 2 3 3 3 2 3 3 2 3 3 3 2 ...
Скажімо, послідовність є 1-індексованою. i
Е число в послідовності визначає , скільки 3
років існує до i
го 2
і після всіх попередніх 2
с. Отже, оскільки послідовність починається з 3
послідовності, повинна починатися, 3 3 3 2
а оскільки 3
на початку послідовності є три s, то послідовність 3 3 3 2
повинна повторюватися три рази. Після цього ви досягнете, 3 3 2
тому що четверте число в послідовності є 2
.
Загадка FiveThirtyEight просить обмежити співвідношення трійки до двох (що я тут не зіпсую), але ви також можете запитати, яке кумулятивне відношення після індексу i
. Наприклад, співвідношення at i=4
є 3/1 = 3
і i=15
є 11/4 = 2.75
.
Давайте загалом
За даними числами, n
і k
ми можемо скласти подібну послідовність, яка починається з n
і точно так само, як описана в початковій послідовності цифра в індексі i
визначає, скільки n
s з'явиться перед i
th k
і після будь-яких попередніх k
s.
Приклади:
n=2, k=5
дає послідовність 2 2 5 2 2 5 2 2 2 2 2 5 2 2 5 ...
n=3, k=0
дає 3 3 3 0 3 3 3 0 3 3 3 0 0 3 3 3 0 ...
n=1, k=3
дає 1 3 1 1 1 3 1 3 1 3 1 3 1 1 1 3 1 ...
Змагання
Напишіть функцію / програму і з нею виконайте наступне. Візьміть як вхід:
- додатне ціле число
n
- невід’ємне ціле число
k ≠ n
- додатне ціле число
i > n
Перші два входи n
і k
визначають послідовність, як описано вище, і i
є індексом. Я використовую 1-індексацію в прикладах, але ви маєте свободу використовувати 0- або 1-індексацію. Якщо 0-індексовано, тоді обмеження i
є i ≥ n
.
За допомогою трьох чисел виведіть відношення n
s до k
s у послідовності до та включення числа в індексі i
. Формат виводу може бути або десятковою величиною з принаймні 5 цифрами точності, або точним значенням як співвідношення як 3524/837
або 3524:837
.
У десятковій формі останню цифру можна округлити, як завгодно. Дозволені нулі та пробіли.
В будь-якій з рядкових форм два числа потрібно нормалізувати, щоб вони були одночасними. Наприклад, якщо коефіцієнт був 22/4, 11/2
і 11:2
прийнятний, але 22/4
не є.
Приклади
n k i output
2 4 15 2.75 or 11/4
6 0 666 5.1101 or 557:109
50 89 64 63 or 63:1
3 2 1000 2.7453 or 733/267
9 12 345 9.4545 or 104/11
Це код гольфу на кожній мові, тому найкоротший код у кожній мові є переможцем.
/
або :
просто додавати зайве ускладнення виклику.