Адаптировано из этой загадки FiveThirtyEight .
Фон
Изучите следующую бесконечную последовательность:
3 3 3 2 3 3 3 2 3 3 3 2 3 3 2 3 3 3 2 ...
Допустим, последовательность имеет 1 индекс. Число ith в последовательности определяет, сколько 3s существует до ith 2и после любых предыдущих 2s. Таким образом, поскольку последовательность начинается с a, 3последовательность должна начинаться, 3 3 3 2и поскольку 3в начале последовательности есть три s, подпоследовательность 3 3 3 2должна повторяться три раза. После этого вы достигнете, 3 3 2потому что четвертый номер в последовательности 2.
Загадка FiveThirtyEight требует ограничения отношений троек и двоек (что я не буду здесь баловать), но вы также можете спросить, каково совокупное соотношение после индекса i. Например, соотношение в i=4это 3/1 = 3и в i=15это 11/4 = 2.75.
Давай вообще
С учетом числа nи kмы можем сделать подобную последовательность , которая начинается с nи так же , как исходная последовательность описана число в индексе iопределяет , сколько nей показать до iго kи после всех предыдущих kс.
Примеры:
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-индексированные то ограничение на iIS i ≥ n.
С помощью трех чисел выведите отношение ns к ks в последовательности, включая число в индексе 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
Это код гольф для каждого языка, поэтому самый короткий код на каждом языке является победителем.
/или :просто добавляли ненужное усложнение к задаче.