挑战能力——数字中不带9的正整数占所有正整数的比例是多少?
2013-08-01 23:42
375 查看
挑战能力——数字中不带9的正整数占所有正整数的比例是多少?
先解释一下题目。举例说明:123456就是数字中不带9的正整数,124789是数字中带9的正整数。也可以知道,数字中带9的正整数和数字中不带9的正整数都有无穷多个。那数字中不带9的正整数占所有正整数的比例是多少?
咋眼一看,这个比例的精确值很难一下子算出来。人们对很难一下子计算出来的值都会有进行估算的天性。有人估算能力强,有人估算能力弱。那么估算看看,这个比例是多少?
是多少呢?考虑到有0-9十个数字,有人会说是9/10=0.9;有人觉得太高了,那么7/10=0.7怎么样;还太高,那么5/10=0.5差不多吧,这个答案已经让很多人狐疑了,那么少?0.3呢,有人会觉得疯了吧;0.1呢,太不可思议了,怎么可能呢?
还是用事实说话吧
假设现在有N(N≥1)位整数。那么从1到99……99(N个9)中,数字中不带9的正整数有多少个?
考虑到一共N位,则每位上只能取0-8这9个数字。那么数字中不带9的正整数一共有9*9*……*9*9(N个9)-1=9N-1。(减去1是因为去掉00……00(N个0)=0这个数)
而1到99……99(N个9)一共有10N-1个正整数。则N(N≥1)位整数中,数字中不带9的正整数所占的比例为
由计算可知,F1=8/9≈88.89%;F2=80/99≈80.81%;F3=728/999≈72.87%;F10=3486784400/9999999999≈34.87%
可以看到一个趋势,随着N的增大,比例FN会越来越小。
那么,当N趋向于无穷大时,FN会趋向于什么值呢?还是用计算来说话
可以看出,FN会趋向于0,所以数字中不带9的正整数占所有正整数的比例是0,怎么样,结果出乎意料吧。但是通过计算是正确的(这儿0的概念更接近于无穷小的概念,而不是没有这个概念)
怎么会突然想到这个问题,源于近期在网上热议的论文《既发散又收敛的无穷级数》(上了正式刊物的论文,还有该论文的英文翻译版)。
从论文的题目看,既发散又收敛的无穷级数,本身充满者矛盾(无穷级数要么发散、要么收敛)
看了看论文,其中有一条重要的依据就是:“含有9的n位自然数”远少于“不含9的n位自然数”
然而现在说明了“不含9的n位自然数”所占的比例为0,那么“不含9的n位自然数”远少于“含有9的n位自然数”。
这也说明了《既发散又收敛的无穷级数》论文中重要依据不成立,该论文的观点也是错误的。
题外话:在计算数字中不带9的正整数占所有正整数的比例时,有了副成果。现在,贴于下方,以记之。
已知:G(1)=1;G(N)=G(N-1)*8+10N-1
求:函数G(N)的通项公式
方法一:
G(N)=8G(N-1)+10N-1
=8(8G(N-2)+10N-2)+10N-1=82G(N-2)+8110N-2+8010N-1
=82(8G(N-3)+10N-3)+8110N-2+8010N-1=83G(N-3)+8210N-3+8110N-2+8010N-1
……
=8N-1G(1)+8N-2101+……+8110N-2+8010N-1
=8N-1100+8N-2101+……+8110N-2+8010N-1
方法二:
令:
则:
所以:
两式相减得:
再令:
得:
,所以T(N)是等比数列
因为:
,
,所以
又因为:
所以:
最终:
相关文章推荐
- 挑战能力——数字中不带9的正整数占所有正整数的比例是多少?
- Help Tomisu UVA - 11440 难推导+欧拉函数,给定正整数N和M, 统计2和N!之间有多少个整数x满足,x的所有素因子都大于M (2<=N<=1e7, 1<=M<=N, N-M<=1E5) 输出答案除以1e8+7的余数。
- 编写程序数一下 1到 100 的所有整数中出现多少次数字9
- 金山招聘题目: 编程计算从1到2008080808之间的整数有多少个含有数字7
- 给定一个十进制正整数N,求出从1开始,到N的所有整数,数字1出现的次数(java实现)
- 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
- 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- LeetCode试题之““给定一个正整数A,找到最小的正整数B,它的每一个数字的乘法等于A。””
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 编写程序数一下 1到 100 的所有整数中出现多少次数字9。
- 金山招聘题目:编程计算从1到2008080808之间的整数有多少个含有数字7
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 给定一个正整数N,从1到N所有整数,计算出现1的个数
- 输入正整数k,找到所有的正整数x>=y,使得1/k=1/x + 1/y; 样例输入: 2 12 样例输出: 2 1/2 = 1/6 + 1/3 1/
- 编写程序数一下1到100的所有整数中出现多少次数字9
- 按序输出整数数组中所有出现频率最高的数字
- 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。剑指Offer(32)
- 将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- 【c语言】编写程序数一下1到100的所有整数中出现多少次数字9
- 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。