Adaptado de este acertijo FiveThirtyEight .
Antecedentes
Examine la siguiente secuencia infinita:
3 3 3 2 3 3 3 2 3 3 3 2 3 3 2 3 3 3 2 ...
Digamos que la secuencia está indexada en 1. El inúmero th en la secuencia determina cuántos 3s hay antes del ith 2y después de cualquier 2s anterior . Entonces, dado que la secuencia comienza con a, 3la secuencia debe comenzar 3 3 3 2y dado que hay tres 3s al comienzo de la secuencia, la subsecuencia 3 3 3 2debe repetirse tres veces. Después de eso alcanzas 3 3 2porque el cuarto número en la secuencia es 2.
El enigma FiveThirtyEight pregunta por el límite de las razones de tres a dos (que no voy a estropear aquí) pero también puede preguntar cuál es la relación acumulativa después del índice i. Por ejemplo, la relación en i=4es 3/1 = 3y en i=15es 11/4 = 2.75.
Seamos generales
Dados los números ny kpodemos hacer una secuencia similar que comience con ny tal como se describe en la secuencia original, el número en el índice idetermina cuántos ns aparecen antes del ith ky después de cualquier ks anterior .
Ejemplos:
n=2, k=5 da la secuencia 2 2 5 2 2 5 2 2 2 2 2 5 2 2 5 ...
n=3, k=0 da 3 3 3 0 3 3 3 0 3 3 3 0 0 3 3 3 0 ...
n=1, k=3 da 1 3 1 1 1 3 1 3 1 3 1 3 1 1 1 3 1 ...
El reto
Escriba una función / programa y con ella haga lo siguiente. Tomar como entrada:
- un entero positivo
n - un entero no negativo
k ≠ n - un entero positivo
i > n
Las dos primeras entradas ny kdeterminar una secuencia como se describe anteriormente y ies un índice. Estoy usando la indexación 1 en los ejemplos, pero usted tiene la libertad de usar la indexación 0 o 1. Si está indexado a 0, entonces la restricción ies i ≥ n.
Con la salida de los tres números, la relación de ns a ks en la secuencia hasta e incluyendo el número en el índice i. El formato de la salida puede ser un valor decimal con al menos 5 dígitos de precisión o un valor exacto como una relación como 3524/837o 3524:837.
En forma decimal, el último dígito se puede redondear como desee. Se permiten ceros finales y espacios en blanco.
En cualquiera de las formas de cadena, los dos números deben normalizarse para que sean coprimos. Por ejemplo, si la relación era 22/4, 11/2y 11:2son aceptables pero 22/4no lo son.
Ejemplos
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
Este es el código de golf por idioma, por lo que el código más corto en cada idioma es el ganador.
/o :simplemente agrega una complicación innecesaria al desafío.