找回密码
 欢迎注册
查看: 40835|回复: 40

[讨论] 如何求出1-n以内勾股数之和

[复制链接]
发表于 2011-4-19 07:32:54 | 显示全部楼层 |阅读模式

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

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

×
比如1-10 3+4+5 +6+8+10=36
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-4-19 07:58:32 | 显示全部楼层
请问:若 n=7 时,包含“6”吗?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-4-19 09:51:58 | 显示全部楼层
楼主的例子是包含n的 1~10:3+4+5+6+8+10=36
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-4-19 10:00:39 | 显示全部楼层
我问的意思是:不完整的“勾股数”组合算吗?比如(6,8,10)中能选前面的一二个。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-4-19 11:03:18 | 显示全部楼层
要完整的 比如1-15 3 4 5 5 12 13 6 8 10 9 12 15 全加起来
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-4-19 11:41:22 | 显示全部楼层
勾股数 形如:{a^2+b^2 ,a^2-b^2 ,2ab} 所以问题的实质就是,求所有满足a^2+b^2 <= n 的非平凡的正整数解。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-4-19 11:42:59 | 显示全部楼层
关于 半径为根号n的圆内 的整点个数,以及所有的整数点, 我记得在Mathematica里面是有现成的函数的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-4-19 12:47:57 | 显示全部楼层
非平凡的是怎么理解呢
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-4-19 12:57:17 | 显示全部楼层
#6,试一下编程:
  1. #include <stdio.h>
  2. #include <math.h>
  3. typedef unsigned int DWORD;
  4. DWORD Test(DWORD n)
  5. {
  6. DWORD t,sum=0;
  7. DWORD a,b;
  8. for(b=1;b<(n>>1);b++)
  9. for(a=b+1;a<=n;a++)
  10. {
  11. t=(DWORD)pow((double)a,2.0);
  12. if((t+(DWORD)pow((double)b,2.0))<=n)
  13. sum+=(t+a*b)<<1;
  14. }
  15. return sum;
  16. }
  17. int main()
  18. {
  19. printf("%u %u\n",10,Test(10));
  20. return 0;
  21. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-4-19 21:53:49 | 显示全部楼层
9# G-Spider 我也写了一个:
  1. #include <stdio.h>
  2. int Test(int n)
  3. {
  4. int t,sum=0;
  5. int a,b;
  6. for(b=1;b*b<n/2.0;b++)
  7. for(a=b+1;a*a<=n;a++)
  8. { t=a*a+b*b;
  9. if(t<=n)
  10. printf("%d\t%d\t%d\t\n",a*a-b*b,2*a*b,t), sum+=2*a*(a+b);else break;
  11. }
  12. return sum;
  13. }
  14. int main(int c ,char **v)
  15. { if (c==2) {printf("total:%s %d\n",v[1],Test(atoi(v[1]))); }
  16. return 0;
  17. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-21 20:32 , Processed in 0.035959 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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