马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?欢迎注册
×
勾股本原数,求斜边的通项公式
前面若干项依次为:
- {5, 13, 17, 25, 29, 37, 41, 53, 61, 65, 65, 73, 85, 85, 89, 97, 101, \
- 109, 113, 125, 137, 145, 145, 149, 157, 169, 173, 181, 185, 185, 193, \
- 197, 205, 205, 221, 221, 229, 233, 241, 257, 265, 265, 269, 277, 281, \
- 289, 293, 305, 305, 313, 317, 325, 325, 337, 349, 353, 365, 365, 373, \
- 377, 377, 389, 397, 401, 409, 421, 425, 425, 433, 445, 445, 449, 457, \
- 461, 481, 481, 485, 485, 493, 493, 505, 505, 509, 521, 533, 533, 541, \
- 545, 545, 557, 565, 565, 569, 577, 593, 601, 613, 617, 625, 629, 629, \
- 641, 653, 661, 673, 677, 685, 685, 689, 689, 697, 697, 701, 709, 725, \
- 725, 733, 745, 745, 757, 761, 769, 773, 785, 785, 793, 793, 797, 809, \
- 821, 829, 841, 845, 845, 853, 857, 865, 865, 877, 881, 901, 901, 905, \
- 905, 925, 925, 929, 937, 941, 949, 949, 953, 965, 965, 977, 985, 985, \
- 997}
复制代码
绘图如下:
看起来像直线,但是又不是直线,如何找出通项公式呢?如果不是通项公式,那要求是尽可能好的拟合公式。
代码如下:
- Clear["Global`*"];(*清除所有变量*)
- max=1000;(*边长的最大值*)
- aa=Flatten[#,1]&@Table[{i,j},{i,1,max,2},{j,1,i,2}];(*产生二元数组(都是奇数),并且第一个元素大于等于第二个*)
- bb=Select[aa,GCD@@#==1&&(#[[1]]>#[[2]])&];(*选择互质并且前者大的*)
- cc={#1*#2,(#1^2-#2^2)/2,(#1^2+#2^2)/2}&@@@bb;(*产生勾股数*)
- dd=Sort[#]&/@cc;(*排序,从小到大*)
- ee=Select[dd,#[[3]]<=max&](*最大的<=max*)
- ff=Sort@(ee[[All,3]])(*提取第三列,并且从小到大排列*)
- ListLinePlot[ff](*绘制曲线*)
复制代码
|