关于模2的幂次的周期的小问题
查看原帖
关于模2的幂次的周期的小问题
84564
LebronDurant楼主2024/7/31 19:25

看了11篇题解,发现大家对于模pkp^k的周期为π(p)pk−1\pi(p)p^{k-1}的证明都是用1+52\frac{1+\sqrt{5}}{2}升幂定理来做。但是对于2k2^k的特殊情况来说,55有没有二次剩余其实问题不大,扩个域就好了,但是没有逆元硬用感觉不太行。

模2k2^k的周期为3×2k−13\times 2^{k-1},证明用数学归纳法。首先k=1k=1成立。我们假设m≤km\leq k时模2m2^m的周期都是3×2m−13\times 2^{m-1}已成立。那么:

F3×2k−1mod  2k=0,F3×2k−1+1mod  2k=1F_{3\times 2^{k-1}}\mod 2^k=0,F_{3\times 2^{k-1}+1}\mod 2^k=1

由经典结论F3×2k=F3×2k−1F3×2k−1−1+F3×2k−1+1F3×2k−1=F3×2k−1(F3×2k−1−1+F3×2k−1+1)F_{3\times 2^k}=F_{3\times 2^{k-1}}F_{3\times 2^{k-1}-1}+F_{3\times 2^{k-1}+1}F_{3\times 2^{k-1}}=F_{3\times 2^{k-1}}(F_{3\times 2^{k-1}-1}+F_{3\times 2^{k-1}+1})

第一个因数里有kk个22,第二个因数考虑模22意义下时00,所以乘起来是2k+12^{k+1}的倍数。F3×2kmod  2k+1=0F_{3\times 2^{k}}\mod 2^{k+1}=0

F3×2k+1=F3×2k−12+F3×2k−1+12F_{3\times 2^{k}+1}=F_{3\times 2^{k-1}}^2+F_{3\times 2^{k-1+1}}^2

第一项模2k+12^{k+1}显然为00。由归纳假设F3×2k−1+1=s⋅2k+1F_{3\times 2^{k-1}+1}=s\cdot2^{k}+1

那么F3×2k−1+12=s222k+s2k+1+1F_{3\times 2^{k-1}+1}^2=s^22^{2k}+s2^{k+1}+1

即F3×2k+1mod  2k+1=0F_{3\times 2^{k}+1} \mod 2^{k+1}=0

即3×2k+13\times 2^k+1是模2k+12^{k+1}的周期。归纳假设成立。

2024/7/31 19:25
加载中...