找回密码
 欢迎注册
查看: 49336|回复: 20

[讨论] 平方数问题一则

[复制链接]
发表于 2009-1-31 08:46:20 | 显示全部楼层 |阅读模式

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

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

×
假设完全平方数$a$的十进制表示的各位数字和是$b$ 如果$b$也是完全平方数,我们称$a$是二重平方数 如果$b$也是二重平方数,则我们称$a$是三重平方数 依次类推 现在请求出$10^24$内的所有二重平方数
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-1-31 14:26:11 | 显示全部楼层
看来别人么兴趣做啊
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-1-31 14:33:11 | 显示全部楼层
代码 let square = [s| a <- [1..16], let s = a * a] let isSquare = listArray (1, 256) [s | a <- 1..256], let s = (/= []) \$ findIndices (==a) square] let digitsSum n = sum \$ zipWith (*) [0..9] \$ map (flip (-) 1) \$ map length \$ group \$ sort \$ (show n) ++ "0123456789" let test n m = [(i, s, ss) | i <- [n..m], let s = i * i, let ss = digitsSum s, isSquare!(toInteger ss)] 得到10^12内的结果并保存 writeFile "Result.Txt" \$ show \$ test 1 1000000
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-1-31 14:37:56 | 显示全部楼层
呵呵 10^12内 耗时几秒 共160264组解 解的数量太多了 result24.part1.rar (439.45 KB, 下载次数: 1) result24.part2.rar (345.27 KB, 下载次数: 1)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-1-31 22:02:36 | 显示全部楼层
使用Haskell算的啊 耗时多少? 确实太多了 你只求$10^12$内的而已
  1. Clear[a, b, s, i, j, k, t];
  2. k = 1;
  3. For[i = 1, i < 10^12 + 1, i++,
  4. a = i^2;
  5. (*二重平方数*)
  6. len = IntegerLength[a];
  7. s = 0;
  8. b = a;
  9. For[j = len, j > 0, j--,
  10. s += IntegerPart[a/(10^(j - 1))];
  11. a = Mod[a, (10^(j - 1))];
  12. ];
  13. t = IntegerPart[Sqrt[s]];
  14. If[t^2 != s, Continue[],
  15. PutAppend[NO : k | b | s, "2SquareNum.txt"]; k += 1;];
  16. ] // Timing
  17. Print["No.", k]
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-1-31 22:05:00 | 显示全部楼层
多谢提醒, 当时有点糊涂了 呵呵, 年纪大了,人一过10岁就有点迷糊了 呵呵
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-1-31 22:06:19 | 显示全部楼层
不是吧,我刚回复,你就看到贴了,难道你也一直刷新帖子啊
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-1-31 22:06:36 | 显示全部楼层
这个东西有优化算法 在那个平方数字和帖子上的代码可以修改来做 大概不会很长时间就能得到10^24内的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-1-31 22:07:05 | 显示全部楼层
Haskell代码是用最笨的算法写的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-1-31 22:09:58 | 显示全部楼层
呵呵 我现在还看不懂Haskell 只会mathematica穷举
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-23 03:20 , Processed in 0.036221 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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