找回密码
 欢迎注册
楼主: chyanog

[提问] 当n=?时,含9的项之和开始大于不含9的项之和

[复制链接]
发表于 2010-5-19 10:52:59 | 显示全部楼层
Mathematica one-liner :

Total /@ Divide[1, GatherBy[Range[10^6], MemberQ[IntegerDigits[#], 9] &]] // N

计算得到{11.0157, 3.37707},即不含9的为11.0157,含9的为 3.37707
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-19 10:59:59 | 显示全部楼层
猜想,不含9的,永远大于含9的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-19 11:13:20 | 显示全部楼层
这个程序在于怎么快速划分是含9数字和不是含9数字
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-19 11:38:46 | 显示全部楼层
计算到n=8

n = 6
当前时间: 10-05-19 11:36:19
s9:  3.37707487299286E+0000
s0:  1.10156508498724E+0001
当前时间: 10-05-19 11:36:19

n = 7
当前时间: 10-05-19 11:36:37
s9:  4.48915764329263E+0000
s0:  1.22061536225655E+0001
当前时间: 10-05-19 11:36:37

n = 8
当前时间: 10-05-19 11:37:04
s9:  5.72029046399861E+0000
s0:  1.32776059398579E+0001
当前时间: 10-05-19 11:37:11

s9表示含9的,s0表示不含9
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-19 11:42:32 | 显示全部楼层
计算结果表明,s9 / s0在逐渐加大

program inv9;

{$APPTYPE CONSOLE}

uses
  SysUtils, math;

function is9(n: integer): boolean;
begin
  is9 := false;
  while n > 0 do
  begin
    if (n mod 10) = 9 then
    begin
      is9 := true;
      break;
    end;
    n := n div 10;
  end;
end;

var
  n, max: integer;
  s0, s9: double;
begin
    s0 := 0.0;
    s9 := 0.0;
    write('输入终止数字:');
    readln(max);
    writeln(formatDateTime('当前时间: yy-mm-dd hh:nn:ss', now));
    for n := 1 to max do
    begin
       if is9(n) then
         s9 := s9 + 1 / n
       else
         s0 := s0 + 1 / n;
    end;


    writeln('s9 =  ', s9);
    writeln('s0 =  ', s0);
    writeln('s9 / s0 = ', s9 / s0);
    writeln(formatDateTime('当前时间: yy-mm-dd hh:nn:ss', now));
end.

稍后贴上结果
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-19 11:46:04 | 显示全部楼层
输入终止数字:9999
当前时间: 10-05-19 11:41:00
s9 =   1.56442163317817E+0000
s0 =   8.22308440286620E+0000
s9 / s0 =  1.90247546605856E-0001
当前时间: 10-05-19 11:41:00

输入终止数字:99999
当前时间: 10-05-19 11:41:06
s9 =   2.39726833775723E+0000
s0 =   9.69286779210615E+0000
s9 / s0 =  2.47322917135996E-0001
当前时间: 10-05-19 11:41:06

输入终止数字:999999
当前时间: 10-05-19 11:41:13
s9 =   3.37707487299286E+0000
s0 =   1.10156508498724E+0001
s9 / s0 =  3.06570616572508E-0001
当前时间: 10-05-19 11:41:13

输入终止数字:9999999
当前时间: 10-05-19 11:41:24
s9 =   4.48915764329263E+0000
s0 =   1.22061536225655E+0001
s9 / s0 =  3.67778235642841E-0001
当前时间: 10-05-19 11:41:24

输入终止数字:99999999
当前时间: 10-05-19 11:41:32
s9 =   5.72029046399861E+0000
s0 =   1.32776059398579E+0001
s9 / s0 =  4.30822430633139E-0001
当前时间: 10-05-19 11:41:39

输入终止数字:999999999
当前时间: 10-05-19 11:41:47
s9 =   7.05856849197676E+0000
s0 =   1.42419130093965E+0001
s9 / s0 =  4.95619407822506E-0001
当前时间: 10-05-19 11:43:07
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-19 11:47:53 | 显示全部楼层
估计这个s9 / s0会无限接近1,但永远小于1
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-19 11:51:01 | 显示全部楼层
计算n = 10的
9999999999个数字,64位运算,恐怕要等很长时间了,下午贴结果
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-19 14:39:07 | 显示全部楼层
输入终止数字:9999999999
当前时间: 10-05-19 11:50:18
9 =   8.49327722400620E+0000
0 =   1.51097893709351E+0001
9 / s0 =  5.62104276605184E-0001
当前时间: 10-05-19 12:43:23

太大的数字误差就大了,仅供参考
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-5-19 14:52:42 | 显示全部楼层
大家理解有误了,可能是我描述不够清楚。
注意分母的位数是n
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-3 22:56 , Processed in 0.045326 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表