
1 Dannytmp 2016-05-11 16:38:46 +08:00 难点在于高中知识的范围啊 |
2 shshilmh 2016-05-11 17:15:52 +08:00 |
3 ffffwh 2016-05-11 17:57:03 +08:00 9 * (10 - 1)^n, for n = 0 -> 2016 。看(10-1)^n 怎么给出首位为 1 的? |
4 Kirscheis 2016-05-11 18:00:03 +08:00 via iPhone 这个用得着高中知识吗。。初中差不多了,考点对数换底公式啊。 10^([log(9^n)]+1) > 9^n > 9^[log(9^n)] 解不等式,得 log(9) < nlog(9)-[nlog(9)] < 1 也就是说 nlog(9) 的小数部分大于 log(9) 就可以了。列等差数列,做一个除法,问题结束。 |
6 lightening 2016-05-11 18:15:38 +08:00 @Kirscheis 能不能解释一下为什么 10^([log(9^n)]+1) > 9^n > 9^[log(9^n)] 代表首位为 9 ? |
7 Kirscheis 2016-05-11 18:28:50 +08:00 via iPhone @lightening p 位整数首位为 9 的充要条件是 10^p > x >= 10^(p-1),这里因为 9 的幂次个位不可能为 0 ,故条件退化为 10^p > x > 10^(p-1) 又因为任意 p 位整数 n 可化为级数 ∑(a,i) a*(10^i),故 n 的位数 p = [log(9^n)]+1 上面两个条件合起来就是了 |
8 Kirscheis 2016-05-11 18:31:20 +08:00 via iPhone @lightening 手机打字变量名打错了。。漏了个条件 p 位整数 x 首位为 9 的充要条件是 10^p > x >= 10^(p-1),这里因为 9 的幂次个位不可能为 0 ,故条件退化为 10^p > x > 10^(p-1) 又因为任意 p 位整数 x 可化为级数 ∑(a,i) a*(10^i),故 n 的位数 p = [log(x)]+1 ,题设中的 x = 9^n ,故 p = [log(9^n)]+1 上面两个条件合起来就是了 |
9 Kirscheis 2016-05-11 18:32:43 +08:00 via iPhone @lightening 报警,发出去发现还有一处没改。。请忽略上面两条 p 位整数 x 首位为 9 的充要条件是 10^p > x >= 10^(p-1),这里因为 9 的幂次个位不可能为 0 ,故条件退化为 10^p > x > 10^(p-1) 又因为任意 p 位整数 x 可化为级数 ∑(a,i) a*(10^i),故 x 的位数 p = [log(x)]+1 ,题设中的 x = 9^n ,故 p = [log(9^n)]+1 上面两个条件合起来就是了 |
10 luban 2016-05-11 18:37:26 +08:00 |
11 luban 2016-05-11 18:39:20 +08:00 上面说错了,应该是要知道最大的一个 9 的 n 次方首位是 9 才行 |
12 luban 2016-05-11 18:57:24 +08:00 经过少量测试, 9^2011 的首位是 9 , 9^2011 长度是 1919 ,也就是 2011-1919=92 个 |
13 billon 2016-05-11 19:39:32 +08:00 9^1---> 1 个 9 开头 9^2--->1 个 9 开头 9^3--->11 个 9 开头,分别为:9, 90,91,92,93,94,95,96,97,98,99 ->1+10 9^4 --->111 个 9 开头->1+10+100 …… 9^2016 ---> 1 + 10 +100 + 1000 + …… + 10 …… 2015 = 11111111 …… 1111 ( 2015 个 1 )个 9 开头 |
14 yuuki 2016-05-11 19:40:49 +08:00 算出来是 21 个,不知道对不对 用到了科学计数法,对数和不等式的知识 9^n=a10^(n-1),满足首位为 9→9≤a<10 ,解不等式得 1≤n≤21 |
15 qqmishi 2016-05-11 19:43:43 +08:00 via Android 想了半天才发现是要求有几个,,, 首位是 9 意味着本次运算没有进位,所以看看位数与指数的差就行了,理论上只需要算 9^2016 的位数 实际上差不多每隔 22 或者 21 就会出现一个首位是 9 的 |
16 loading 2016-05-11 19:52:31 +08:00 via Android 完全不懂…… |
17 zingl 2016-05-11 23:47:35 +08:00 2016*(1-log9) |
18 lightening 2016-05-11 23:56:58 +08:00 @Kirscheis 谢谢。这里 [ ] 是取整数的意思吗? |
19 jimages 2016-05-12 00:11:56 +08:00 via Android @Kirscheis 有误,应为, p 位整数 x 首位为 9 的充要条件是 10^p > x >= 10^p - 10^(p-1) |
20 jimages 2016-05-12 00:16:49 +08:00 @jimages 于是 变形 10^p > x >= 9*10^(p-1) 这里在 x 为 9 的时候需要取等号,因此不能退化。 |
22 MCVector 2016-05-12 02:41:23 +08:00 via Android 首位肯定是个循环数组,找到循环的周期就行了。 |
23 maomaomao001 2016-05-12 02:47:20 +08:00 via Android 首位为 9 的数不是有无数个吗? 9 9x 9xx 9xxx |
24 Kirscheis 2016-05-12 03:37:01 +08:00 via Android @jimages 抱歉,是有点问题。吃晚饭的时候看见题目随手打的,脑抽忘了乘 9 。果然口算不怎么靠谱。不过基础思路就是取对数换底,把常数替换一下就行了。 n=1 的时候确实不能退化了,不等式里的小于应该换成小于等于。 楼上已经出现更好的算法了,我考虑过 9 开头的数是否前一个一定 1 开头后一个一定进位,但是当时吃着饭感觉证明比较麻烦,没想到挺容易的。 |
26 panchina OP @lightening 是的 |
27 yszx 2016-05-12 09:27:34 +08:00 @luban 并不需要知道最后一个数是否开头是 9 ,因为他的原理是 位数差=出现重复位数的次数=9 开头的次数,这个思路太强大了 |
28 zingl 2016-05-12 11:35:26 +08:00 不需要知道最后一个数开头是什么,但需要知道最后一个数有多少位,也就是要知道 log(9^k)=k*2*log3 的整数部分,所以告诉你了 log3 等于多少 链接里的解是不完全的,因为除了要证明“若 9 的 a 次方首位字 9, 那 9 的 a-1 次方位 9 的 a 次方位相同(是明的)”,还要证明对于任意 b 位数的自然数,其中至少有 1 个是 9 的整数次幂(引号内容表明可以有 2 个,引申可证得不会有 2 个以上),否则解法是不成立的。 最后就是个抽屉原理了。 |
31 Rorysky 2016-05-12 13:25:21 +08:00 via Android |
32 zingl 2016-05-12 13:30:25 +08:00 @panchina n 值大了以后中间就肯定不是 9^n 了 首先要证明:对任意正整数 i , 10^i < 9^j < 10^(i+1),至少有 1 个、至多有 2 个整数解 然后要证明: 当且仅当 有 2 个解时,大的解是 9 开头 那么对于 9^1 至 9^k , k 个解分布于 10^1 至 10^(log(9^k)),那么其中上述两个解的情况出现的次数 k-log(9^k)=k(1-log9) 见 17 楼 精确解要考虑 10^0 = 9^0 < 9^1 < 10^1 的特例加 1 ,除此以外, 9^i=10^j 无正整数解,所以上面的不等式不需要考虑相等 |
33 Kirscheis 2016-05-12 15:03:16 +08:00 via Android @Rorysky 昨天吃饭的时候打的,手抽少乘了个 9 ,见 24 楼。两位整数首位为 9 条件是 100>x>=90 。 |
35 whh945atsyzx 2016-05-12 17:28:17 +08:00 难道不是无数个吗....在 9 后面无限加数字... |
36 panchina OP @whh945atsyzx 9^n 指的是 9 的 n 次方幂 |
38 programgou 2016-06-26 02:45:48 +08:00 把问题推广开来, w,w^1,w^2,w^3,....,w^n 首位为 w 的有几个? |