舌头白黄厚怎么回事:一个数学题

来源:百度文库 编辑:高校问答 时间:2024/04/24 18:58:13
有这样一个函数,对于任意整数n,都能返回写出0到n之间出现“1”的个数。例如,f(13)=6。请注意f(1)=1,那么下一个能实现f(n)=n的最大数字是什么?

暴力破解法:

f[000000001] = 1
f[000199981] = 199981
f[000199982] = 199982
f[000199983] = 199983
f[000199984] = 199984
f[000199985] = 199985
f[000199986] = 199986
f[000199987] = 199987
f[000199988] = 199988
f[000199989] = 199989
f[000199990] = 199990
f[000200000] = 200000
f[000200001] = 200001
f[001599981] = 1599981
f[001599982] = 1599982
可以看出下一个n是199981,满足f(n) = n。

不用程序,手算也可以求解。f(n) = n 表示 y = f(n) 和 y = n 的交点,通过观察 y = f(n) 的变化可以估计交点的范围。f(n) 的一些关键点如下:

f(9) = 1
f(99) = 20
f(999) = 300
f(9999) = 4000
f(99999) = 50000
f(999999) = 600000
这是非常有规律的,同时另外一些观点如下:

f(19) = 12 (f(9)*2 + 1*10 )
f(199) = 140 (f(99)*2 + 1*100)
f(1999) = 1600 (同上)
f(19999) = 18000
f(199999) = 200000
f(1999999) = 2200000
它也是很有规律的,它们分别是 y = f(n) - n 的局部极小值点和极大值点。

由于 f(99999) = 50000 < 99999 而 f(199999) = 200000 > 199999, 则这区间内必有交点

199991中包含两个1,它之前的199981也包含两个1,则当 199981 <= n < 199991 时,都有 f(n) = n 成立。199981即为要求的下一个满足条件的数。

qewretryty123432434345

215879+89+7

编程序呀

陈景润的冰雹猜想如下:
1:任何自然数或者变化后的自然数是奇数时,乘以3再加上1;
2:任何自然数或者变化后的自然数是偶数时,除以2。
这样,任意数按以上规则就能变为1。在1099511627776以内适应。但是不知该如何证明。

f(19) = 12 (f(9)*2 + 1*10 )
f(199) = 140 (f(99)*2 + 1*100)
f(1999) = 1600 (同上)
f(19999) = 18000
f(199999) = 200000
f(1999999) = 2200000
它也是很有规律的,它们分别是 y = f(n) - n 的局部极小值点和极大值点。

由于 f(99999) = 50000 < 99999 而 f(199999) = 200000 > 199999, 则这区间内必有交点

199991中包含两个1,它之前的199981也包含两个1,则当 199981 <= n < 199991 时,都有 f(n) = n 成立。199981即为要求的下一个满足条件的数