【问答】
问:UVA10229,输出斐波那契数列第n项对2^m取模的值。我看到有用循环数列计算的题解,之前也遇到过类似斐波那契数列求循环节的题目,所以想问一下在什么情况下,斐波那契数列存在循环节呢?
636f6c696e答:这其实是个数学问题,答案是必然存在。
对于斐波那契数列a[n]对m取模,由于斐波那契数列的特征,只要存在a[j] mod m = a[k] mod m且a[j+1] mod m = a[k+1] mod m (j<k),则a[j] ~ a[k-1]为循环节。考虑两两相邻的斐波那契数 mod m的数对,最多只有m * (m - 1)种可能。根据抽屉原理,a[0]~a[m * (m - 1) + 1]中必然存在相邻数对存在重复。因此必然存在循环节。