请证明:$$fn=nbmod2^lfloorlog_2nrfloortimes2$$$$fn=begincasesfn-1+2bmod n & n1 0 & n=1endcases$$
我们可以通过数学归纳法证明这个等式对于所有正整数n成立。
首先,对于n=1,根据定义,$f(1)=0$。所以基本情况成立。
假设对于某个正整数k,等式$f(k)=(k\bmod2^{\lfloor\log_2k\rfloor})\times2$成立。我们来证明对于k+1也成立。
根据定义,$f(k+1)=(f(k)+2)\bmod(k+1)$。将$f(k)$代入等式,得到
$f(k+1)=((k\bmod2^{\lfloor\log_2k\rfloor})\times2+2)\bmod(k+1)$
我们来证明$((k\bmod2^{\lfloor\log_2k\rfloor})\times2+2)\bmod(k+1)=(k+1\bmod2^{\lfloor\log_2(k+1)\rfloor})\times2$。
要证明这个等式,我们需要考虑两种情况:
-
当$2^{\lfloor\log_2k\rfloor}\leq k$时,$k\bmod2^{\lfloor\log_2k\rfloor}=k$。所以,$((k\bmod2^{\lfloor\log_2k\rfloor})\times2+2)\bmod(k+1)=(k\times2+2)\bmod(k+1)$。根据模运算的性质,$(k\times2+2)\bmod(k+1)=2\bmod(k+1)$。由于2小于k+1,所以$2\bmod(k+1)=2$。所以,$((k\bmod2^{\lfloor\log_2k\rfloor})\times2+2)\bmod(k+1)=2$。另一方面,$k+1\bmod2^{\lfloor\log_2(k+1)\rfloor}=k+1$,所以$(k+1\bmod2^{\lfloor\log_2(k+1)\rfloor})\times2=(k+1)\times2=2(k+1)$。所以,$((k\bmod2^{\lfloor\log_2k\rfloor})\times2+2)\bmod(k+1)=(k+1\bmod2^{\lfloor\log_2(k+1)\rfloor})\times2$。
-
当$2^{\lfloor\log_2k\rfloor}> k$时,$k\bmod2^{\lfloor\log_2k\rfloor}=k$。所以,$((k\bmod2^{\lfloor\log_2k\rfloor})\times2+2)\bmod(k+1)=(k\times2+2)\bmod(k+1)$。根据模运算的性质,$(k\times2+2)\bmod(k+1)=2\bmod(k+1)$。由于2小于k+1,所以$2\bmod(k+1)=2$。所以,$((k\bmod2^{\lfloor\log_2k\rfloor})\times2+2)\bmod(k+1)=2$。另一方面,$k+1\bmod2^{\lfloor\log_2(k+1)\rfloor}=k$,所以$(k+1\bmod2^{\lfloor\log_2(k+1)\rfloor})\times2=k\times2$。所以,$((k\bmod2^{\lfloor\log_2k\rfloor})\times2+2)\bmod(k+1)=(k+1\bmod2^{\lfloor\log_2(k+1)\rfloor})\times2$。
综上所述,无论是哪种情况,都有$((k\bmod2^{\lfloor\log_2k\rfloor})\times2+2)\bmod(k+1)=(k+1\bmod2^{\lfloor\log_2(k+1)\rfloor})\times2$。所以,等式$f(k+1)=(k+1\bmod2^{\lfloor\log_2(k+1)\rfloor})\times2$成立。
根据数学归纳法原理,对于所有正整数n,等式$f(n)=(n\bmod2^{\lfloor\log_2n\rfloor})\times2$成立。
原文地址: https://www.cveoy.top/t/topic/i2K2 著作权归作者所有。请勿转载和采集!