找回密码
 注册
Simdroid-非首页
查看: 118|回复: 0

Maple编程解题的例子

[复制链接]
发表于 2009-11-27 11:46:11 | 显示全部楼层 |阅读模式 来自 湖北武汉
题目如图所示:


以下为有限解决的代码:

生成满足第一个和条件的数:
  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
复制代码


这样的数容易找到.

生成满足第二个差条件的数:
  1. 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
复制代码


这样的数也容易找到.

生成同时满足和条件和差条件的数:
  1. 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
复制代码


由于在很大范围内没有发现能同时满足前两个条件的数,倒是可以怀疑是否存在同时满足三个条件的数.

本帖子中包含更多资源

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

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-26 10:57 , Processed in 0.033142 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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