嘘~ 正在从服务器偷取页面 . . .

洛谷U148838 数学黑洞 题解


洛谷U148838 数学黑洞 题解

题目链接:U148838 数学黑洞

本题为私题,作者 q779 (没错,就是本人!

题意

给定 $N \le 10^{114514}$ ,求 $F(N)=f(f(f(\cdots f(N))))$​ 。

其中 $f(N)=N$ 中偶数的个数 $\times 100+ N$ 中奇数的个数 $\times 10 + N$ 的位数。

例如

题目保证一定有解。

输入:一行,$N$​ 。 输出:一行,答案。

这道题是我初中的时候出的,当时从学校的数学报纸上看到的,难度评级入门到普及-吧。

实际上就是“西西弗斯串”(也叫 $123$ 数字黑洞),有兴趣可以百度(百度写的还可以)。

注意到 $f(123)=123$ ,即 $123$​ 是原题的一个不动点。有趣的是,实际上任何 $N \in \mathbb{Z}$ 有 $F(N)=123$​ 。

以下记 $f$ 中的三个数分别为 $a,b,c$ ,即 $f(N) = 100a + 10b + c$ 。

证明其实很简单,我们只需要分类讨论即可

  • 当 $N$​ 是一位数时
    • 若 $N$ 为奇数,则 $a=0,~b=1,~c=1$ 得到 $011$ ,接着 $a=1,~b=2,~c=3$ 得到 $123$ 。
    • 若 $N$ 为偶数,则 $a=1,~b=0,~c=1$ 得到 $101$ ,接着 $a=1,~b=2,~c=3$ 得到 $123$ 。
  • 当 $N$ 是两位数时
    • 一奇一偶,则 $a=1,~b=1,~c=2$ 得到 $112$ ,接着 $a=1,~b=2,~c=3$ 得到 $123$ 。
    • 两个奇数,则 $a=0,~b=2,~c=2$ 得到 $022$ ,然后得到 $303$ ,最后还是得到 $123$​ 。
    • 两个偶数,则 $a=2,~b=0,~c=2$ 得到 $202$ ,然后得到 $303$ ,最后还是得到 $123$​ 。
  • 当 $N$ 是三位数时
    • 三个偶数,则 $a=3,~b=0,~c=3$ 得到 $303$ ,接着 $a=1,~b=2,~c=3$ 得到 $123$
    • 三个奇数,则 $a=0,~b=3,~c=3$ 得到 $033$ ,接着 $a=1,~b=2,~c=3$ 得到 $123$
    • 两个偶数+一个奇数,则 $a=2,~b=1,~c=3$ 得到,接着 $a=1,~b=2,~c=3$ 得到 $123$
    • 一个偶数+两个奇数,则 $a=1,~b=2,~c=3$ 直接得到 $123$​ 。
  • 当 $N$ 是四位数即四位数以上时,$c=a+b$ ,显然一次变化后比 $N$ 小,最终一定变成三位数的情况。$\square$

所以只需要输出 $123$ 即可。时间复杂度 $\mathcal{O}(1)$ ,主要代码就是:puts("123")


参考文献

你别说,我出这题的时候还真不会证明呢(那时候哪有空证明这种东西啊)。

[1] https://baike.baidu.com/item/%E6%95%B0%E5%AD%A6%E9%BB%91%E6%B4%9E/3627700?fromtitle=%E8%A5%BF%E8%A5%BF%E5%BC%97%E6%96%AF%E4%B8%B2&fromid=7970829


文章作者: q779
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 q779 !
评论
  目录