You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于计算$f(f(f(99^{99})))$的值的技术问询

关于计算$f(f(f(99^{99})))$的值的技术问询

嘿,这个问题我熟!你一开始想通过找$99n$的位数规律来入手,这个思路很合理,但其实我们完全不用算出$99{99}$的具体数值,甚至不用管它有多少位,靠数论和二项式展开的小技巧就能直接搞定,过程比你想的简单多了~

先回到问题里的$f(n)$定义:对于非负整数$n$,若十进制表示为$n=\overline{\ldots d_3d_2d_1d_0}$,则$f(n)=|d_0 - d_1 + d_2 - d_3 + \ldots|$,也就是各位数字从右往左交替加减后取绝对值。

我们先把$99^{99}$用二项式定理变形拆解:
$$99^{99} = (100 - 1)^{99}$$
根据二项式定理展开后可得:
$$(100 - 1)^{99} = \sum_{i=0}^{99} \binom{99}{i} \cdot 100^{99-i} \cdot (-1)^i$$

现在关键来了,我们分析每一项的交替和:

  • 对于$100m$($m$为正整数),比如$1001=100$、$100^2=10000$,它们的十进制表示是1后面跟偶数个0,所以交替和为1(比如$100$的交替和是$0-0+1=1$,$10000$的交替和是$0-0+0-0+1=1$)——因为只有最高位的1在偶数位(从0开始计数为第$2m$位),在交替和中是加1,其余位都是0不影响结果。
  • $\binom{99}{i} \cdot 100^{99-i}$的交替和就是$\binom{99}{i}$本身,比如$2×100=200$的交替和是$0-0+2=2$,和系数一致,因为乘以系数只是把最高位的1替换为这个系数,其余位仍为0,交替和不受影响。

那整个$99{99}$的交替和$S$,就是所有项的交替和乘以$(-1)i$后的总和:
$$S = \sum_{i=0}^{99} \binom{99}{i} \cdot (-1)^i$$
这式子正好是二项式定理中的$(1-1)^{99}$,结果直接为0!

所以$f(99^{99}) = |S| = |0| = 0$。接下来的迭代就毫无悬念了:

  • $f(f(99^{99})) = f(0)$,0的十进制表示就是0,交替和为0,因此$f(0)=0$;
  • 再迭代一次,$f(f(f(99^{99}))) = f(0) = 0$。

顺着你的初始思路补一句:如果想算$99^{99}$的位数,用对数公式即可——正整数$n$的位数为$\lfloor \log_{10}n \rfloor + 1$,计算得$\log_{10}99{99}=99×\log_{10}99≈99×1.995679≈197.572$,因此位数为$\lfloor197.572\rfloor+1=198$位,确实符合你发现的“$99k$有$2k$位”的规律,但这个信息在本题中其实用不上,我们已经直接得出了交替和为0的结论。

最终结论就是,$f(f(f(99^{99})))$的值是0。

备注:内容来源于stack exchange,提问作者Ayumi

火山引擎 最新活动