标题: 塌先生2006系列问题07
性别:未知-离线 塌鼻子先生

Rank: 4
组别 校尉
级别 奋威校尉
功绩 31
帖子 120
编号 41049
注册 2005-6-15


发表于 2005-11-22 11:09 资料 文集 短消息 只看该作者
不借助笔和纸以外的任何计算工具,回答:

从1写到200620062006,一共写出了多少个0?


顶部
性别:男-离线 寂寞空手道

Rank: 8Rank: 8
组别 羽林都尉
级别 右将军
好贴 5
功绩 129
帖子 1027
编号 40131
注册 2005-6-3
来自 上海


发表于 2005-11-23 18:12 资料 主页 文集 短消息 只看该作者 QQ
塌先生这个题目看似简单,其实蛮难的。主要是后面不是一个完整的数段,而是截止到200620062006了,这样就必须要重新推算从200000000000到200620062006只见有多少个零出现。

我的算法是:

考虑到0-9这是个数字是顺序出现的,所以每个数位上0出现的频率是相同数位的所有自然数的1/10。解释一下就是0在10-99这90个数的个位出现9次,在100-999这900个数中,个位出现90次,十位出现90次。由此得出一个公式:

零在所有某位数中出现的次数=(数位-1)*9*10^(数位-2)。带入数位得到:

零在所有个位数中出现的次数=(1-1)*9*10^(1-2)=0
零在所有两位数中出现的次数=(2-1)*9*10^(2-2)=1*9*10^0=9
零在所有三位数中出现的次数=(3-1)*9*10^(3-2)=2*9*10^1=180
。。。
零在所有十一位数中出现的次数=(11-1)*9*10^(11-2)=10*9*10^9=90,000,000,000

由于十二位数截止到200620062006,因此上面的公式只能算到99,999,999,999,从100,000,000,000到200,620,062,006就不适用了。

不过从100,000,000,000到199,999,999,999还是很容易算出来的,所有的0出现的次数=(12-1)*1*10^(12-2)=11*1*10^10=110,000,000,000。

比较麻烦的是从200,000,000,000到200,620,062,006,目前我还不知道怎么推出公式,如果硬算的话就太麻烦了。那位朋友有更好的方法?还请不吝赐教!


顶部
性别:未知-离线 塌鼻子先生

Rank: 4
组别 校尉
级别 奋威校尉
功绩 31
帖子 120
编号 41049
注册 2005-6-15


发表于 2005-11-24 12:05 资料 文集 短消息 只看该作者
提示,证明或否定这个命题:从1到N全体整数中数字0出现的次数,等于从1到[N/10]全体整数的位数和。[X]表示不超过X的最大整数。
顶部
性别:男-离线 重阳

高阳侯光禄大夫

Rank: 12Rank: 12Rank: 12
组别 翰林学士
级别 前将军
好贴 2
功绩 585
帖子 1775
编号 50
注册 2003-8-21


发表于 2005-11-24 17:46 资料 主页 文集 短消息 只看该作者
这个命题好象不成立啊。
取N=110,[N/10]=11
从1到11,所有数字的位数和是13,而0的出现次数是
1-99,9个
100,2个,
101-109,9个,
110,1个
用这个方法,似乎只能计算数字末尾的0,包括与末位0相连的,如10000,四个0都算上了。但101这样位于中间的,就没有计入。
顶部
性别:未知-离线 俺是马甲

Rank: 4
组别 士兵
级别 偏将军
好贴 1
功绩 9
帖子 368
编号 28860
注册 2004-12-26


发表于 2005-11-26 03:38 资料 短消息 只看该作者


QUOTE:
原帖由重阳于2005-11-24, 17:46:53发表
这个命题好象不成立啊。
取N=110,[N/10]=11
从1到11,所有数字的位数和是13,而0的出现次数是
1-99,9个
100,2个,
101-109,9个,
110,1个
用这个方法,似乎只能计算数字末尾的0,包括与末位0相连的,如10000,四个0都算上了。但101这样位于中间的,就没有计入。

我厚颜无耻的写上我的想法,大家莫拍
窃以为如果算出每一位重复了多少次从1到0(每位最先出现时都是1!)
可能好些,这样可以避免区分讨论0是被夹还是不是
对于第一位,那时显然好算得,对于高位,只不过
是重复的周期不是1,而是10的幂次,所以算得时候要注意截断
用这样的苯办法一位一位算,总是可以算得出来的,呵呵
不过,也应该可以进一步总结出更一般的式子
顶部
性别:女-离线 天宫公主
(司徒家的颖颖)

虞国公主

Rank: 12Rank: 12Rank: 12
组别 限制发言用户
级别 大将军
好贴 6
功绩 517
帖子 11552
编号 1037
注册 2004-10-25
来自 天津
家族 司徒实业


发表于 2005-11-26 10:35 资料 主页 短消息 只看该作者 QQ
用寂寞空手道的思路....0-999: 100个.
1000 - 1999 = 100 (前面算过的)+ 1(百, 十, 个全零的)+10(百十全零)+100 (百位为零) = 211
2000 - 2006 =  3 + 2.6 = 15.
所以, 1 - 2006 = 100 + 211 + 15 - 1 = 325.
----------------------------------------------------------------------------
0 - 9999 - 1000个
N0000 - N9999 (N为任何数字, N0000 = N万): 1000(前面算过的) + 1000 (千位为零) + 100 (千百位为零) + 10 (千百十位为零) + 1 (千...个位为零) = 2111.
所以, 10000 - 59999 = 2111 x 5 = 10555
则1 - 60000: 10555 - 1 + 4 = 10558.
则1 - 62006: 10558 + 325 = 10880
----------------------------------------------------------------------------
以此规律可推出 1-200620062006. 算累了... 后面的以后再说吧.
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2025-4-8 16:59
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.009768 second(s), 8 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP