下面是一个 Python 代码,它计算给定 4 位数字的中间平方方法的周期性:
n = int(input("Please enter a four digit number: "))
already_seen = list()
while n not in already_seen:
already_seen.append(n)
n = int(str(n * n).zfill(8)[2:6])
print(n)
print('periodicity = ', len(already_seen) - already_seen.index(n))
例如,种子编号 9267 产生于进入周期为 4 [9267, ..., 6100, 2100, 4100, 8100, 6100, 2100, 4100, 8100, 6100, ...] 的短循环中的序列
是否有任何解决方案可以找出哪些数字会产生最长的周期性而无需模拟?如果没有,为什么没有解决方案?一般来说,是否有解决方案可以在不同的随机数生成器中找出给定种子的周期性?