Introducción
El método del cuadrado medio se utiliza para generar números pseudoaleatorios. Sin embargo, este no es un buen método en la práctica, ya que su período suele ser muy corto y tiene algunas debilidades graves. ¿Como funciona esto? Tomemos un ejemplo:
Para la semilla, elegimos 123456
:
Seed 123456
La semilla al cuadrado (semilla × semilla) es igual a:
Seed² 15241383936
Comenzamos con un número de 6 dígitos . Eso significa que la semilla al cuadrado debe entregar un número de 12 dígitos . Si este no es el caso, se agregan ceros a la izquierda para compensar:
Seed² 015241383936
Luego tomamos la parte central del número, con el mismo tamaño que la semilla:
Seed² 015241383936
^^^^^^
Este es entonces nuestra nueva semilla : 241383
. Repetimos el mismo proceso que se muestra arriba. Obtenemos lo siguiente:
0: 123456
015241383936
| |
1: 241383
058265752689
| |
2: 265752
070624125504
| |
3: 624125
389532015625
| |
4: 532015
283039960225
| |
5: 039960
001596801600
| |
6: 596801
Y esto continúa por un tiempo ... Ahora que sabemos cuál es el método del cuadrado medio, vamos al desafío:
La tarea
Cada semilla tiene un período . El período de una semilla de n dígitos no puede ser superior a 8 n . Por ejemplo, la semilla 82
. Esto daría la siguiente secuencia:
82 > 72 > 18 > 32 > 02 > 00 > 00 > 00 > 00 > 00
|____|____|____|____|____|____|____|____|____|___...
0 1 2 3 4 5 6 7 8 9
Puede ver que el período es igual a 5 , antes de volver a contener el mismo dígito. Su tarea es, cuando se le da una semilla mayor que 0 que no contiene ceros a la izquierda, generar el período de la semilla . Entonces, en este caso, necesita salida 5
.
Otro ejemplo es:, 24
que da lo siguiente:
24 > 57 > 24
|____|____|___...
0 1 2
Como puede ver, no todas las secuencias terminan en 0
. Este ciclo tiene un período de 1 .
Casos de prueba
Input > Output
24 > 1
82 > 5
123456 > 146
8989 > 68
789987 > 226
Los pastebins con las secuencias para 123456 , 8989 , 789987
Este es el código de golf , por lo que gana el envío con la menor cantidad de bytes.
Puede suponer que la entrada nunca tendrá un número desigual de dígitos.
24
es periódica (con el período 2, diría),82
es eventualmente periódica (con el período 1).