- 积分
- 16
- 注册时间
- 2009-9-12
- 仿真币
-
- 最后登录
- 1970-1-1
|
题目如图所示:
以下为有限解决的代码:
生成满足第一个和条件的数:
- restart; sumtest := proc (n) local P, sumP, subP, r, dataP, i, j; P := proc (n) (1/2)*n*(3*n-1) end proc; sumP := proc (a, b) P(a)+P(b) end proc; subP := proc (a, b) P(a)-P(b) end proc; r := proc (a, b) abs(subP(a, b)) end proc; dataP := proc (n) [seq(P(i), i = 1 .. n)] end proc; for i to nops(dataP(n)) do for j to nops(dataP(n)) do if member(sumP(i, j), dataP(n)) then print([[P(i), P(j), sumP(i, j)]]) end if end do end do end proc
复制代码
这样的数容易找到.
生成满足第二个差条件的数:
- subtest := proc (n) local P, sumP, subP, r, dataP, i, j; P := proc (n) (1/2)*n*(3*n-1) end proc; sumP := proc (a, b) P(a)+P(b) end proc; subP := proc (a, b) P(a)-P(b) end proc; r := proc (a, b) abs(subP(a, b)) end proc; dataP := proc (n) [seq(P(i), i = 1 .. n)] end proc; for i to nops(dataP(n)) do for j to nops(dataP(n)) do if member(subP(i, j), dataP(n)) then print([[P(i), P(j), subP(i, j)]]) end if end do end do end proc
复制代码
这样的数也容易找到.
生成同时满足和条件和差条件的数:
- test := proc (n) local P, sumP, subP, r, dataP, i, j; P := proc (n) (1/2)*n*(3*n-1) end proc; sumP := proc (a, b) P(a)+P(b) end proc; subP := proc (a, b) P(a)-P(b) end proc; r := proc (a, b) abs(subP(a, b)) end proc; dataP := proc (n) [seq(P(i), i = 1 .. n)] end proc; for i to nops(dataP(n)) do for j to nops(dataP(n)) do if member(sumP(i, j), dataP(n)) and member(subP(i, j), dataP(n)) then print([P(i), P(j), [sumP(i, j), subP(i, j)]]) end if end do end do end proc
复制代码
由于在很大范围内没有发现能同时满足前两个条件的数,倒是可以怀疑是否存在同时满足三个条件的数. |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|