找回密码
 欢迎注册
查看: 27875|回复: 22

[擂台] 来点有意思的问题,2的方幂的开始数字问题

[复制链接]
发表于 2008-4-27 20:29:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
显然,对$2^n$来说,不同的n其开始数字是不同的,有的以1开始有的以2开始,等等。 当然也可以考虑开始两位数字。 容易证明,$2^n$可以任何数字开始。 现在的问题是,请求出$10000$以内的数字$m$对应的$2^n$使$2^n$以$m$开始且$n$最小。 :) 很有意思是不是?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-27 20:44:54 | 显示全部楼层
若m是k位数,则只需要求满足10^log10(2^n)=10^(n*log10(2))的前k位的值是m 的n就ok了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-4-27 20:51:13 | 显示全部楼层
那我觉得不如用10进制加法,逐渐加,然后取前4位效率高
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-29 09:13:45 | 显示全部楼层
主要m才4位,要求不高
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-4-29 11:22:34 | 显示全部楼层
你觉得怎么做合适?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-29 11:25:57 | 显示全部楼层
说一下我的解法,思路还是2#的. 我们记d的小数部分为{d}. 对任意给定的k位数m,我们令c1=log10(m/10^(k-1)), c2=log10((m+1)/10^(k-1)). 那么,我们现在只要找满足 c1<={n*log10(2)}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-29 11:30:28 | 显示全部楼层
发一下代码(未对m=10^t的做特殊处理):
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. const double log10_2=log10(2);
  5. int main()
  6. {
  7. for( int m=1; m<10000; ++m ){
  8. cout<<"m=="<<m<<" ";
  9. int L1=int(log10(m));
  10. double c1=log10(m/pow(10,L1)), c2=log10((m+1)/pow(10,L1));
  11. bool flag=true;
  12. for( int k=0; flag; ++k ){
  13. double s=k*log10_2;
  14. int int_s=int(s);
  15. if( s-int_s>=c1 && s-int_s<c2 ){
  16. flag=false;
  17. cout<<k<<endl;
  18. }
  19. }
  20. }
  21. return 0;
  22. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-29 11:33:32 | 显示全部楼层
上面解c1<={n*log10(2)}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-4-29 11:45:04 | 显示全部楼层
看下运行的时间和一些结果好不好么?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-29 12:04:06 | 显示全部楼层
帖一下结果(m=10^t的结果除1之外的都不正确). 用时:1874 ms.

result.rar

40.62 KB, 下载次数: 12, 下载积分: 金币 -1 枚, 经验 1 点, 下载 1 次

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-24 17:10 , Processed in 0.027504 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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