Вступление
Метод среднего квадрата используется для генерации псевдослучайных чисел. Однако на практике это не очень хороший метод, поскольку его период обычно очень короткий и имеет некоторые серьезные недостатки. Как это работает? Давайте возьмем пример:
Для семян мы выбираем 123456
:
Seed 123456
Квадрат семени (семя × семя), равен:
Seed² 15241383936
Мы начали с 6-значного числа. Это означает, что в квадрате семян должно быть 12-значное число. Если это не так, добавляются начальные нули для компенсации:
Seed² 015241383936
Затем мы берем среднюю часть числа того же размера, что и начальное число:
Seed² 015241383936
^^^^^^
Это наше новое семя : 241383
. Мы повторяем тот же процесс, как показано выше. Мы получаем следующее:
0: 123456
015241383936
| |
1: 241383
058265752689
| |
2: 265752
070624125504
| |
3: 624125
389532015625
| |
4: 532015
283039960225
| |
5: 039960
001596801600
| |
6: 596801
И это продолжается некоторое время ... Теперь мы знаем, что такое метод среднего квадрата, давайте перейдем к задаче:
Задание
Каждое семя имеет в период . Период n- цифрового семени не может быть длиннее 8 n . Например, семя 82
. Это дало бы следующую последовательность:
82 > 72 > 18 > 32 > 02 > 00 > 00 > 00 > 00 > 00
|____|____|____|____|____|____|____|____|____|___...
0 1 2 3 4 5 6 7 8 9
Вы можете видеть, что период равен 5 , прежде чем снова содержать ту же цифру. Ваша задача, если задано начальное число больше 0, не содержащее начальных нулей, вывести период начального числа . Итак, в этом случае вам необходимо вывести 5
.
Другой пример:, 24
который дает следующее:
24 > 57 > 24
|____|____|___...
0 1 2
Как видите, не все последовательности заканчиваются на 0
. Этот цикл имеет период 1 .
Контрольные примеры
Input > Output
24 > 1
82 > 5
123456 > 146
8989 > 68
789987 > 226
Пастбины с последовательностями по 123456 , 8989 , 789987
Это код-гольф , поэтому выигрывает представление с наименьшим количеством байтов!
Вы можете предположить, что ввод никогда не будет иметь разное количество цифр.
24
является периодическим (с периодом 2, я бы сказал),82
в конечном итоге периодическим (с периодом 1).