用Python求解一个经典循环数列问题
1、问题描述:
这是某个QQ群的入群问题:初始条件a[0]=10111,递推方程a[n+1]=int(a[n]^2/10000)-17001.求a[10 ^15].
2、数学分析:
这个差分方程显然是一个整数数列,不难证明该整数数列有上下界,因此取值个数有限,故而它从某一项开始(不一定是a[0]就开始循环)后续是一个循环序列。因此要解决该问题就需要找到循环周期T,和初始循环项a[i]。如果不是10^15太大,完全可以直接循环找到取值。
3、Python代码
如下。
a = 10111 #初始值
num = []
l =0
while True:
l = l+1 #第一个
num