mathematica 发表于 2011-2-18 19:10:48

我想了想,我还是应该把可复制的结果给你才好,所以就贴了上来

mathematica 发表于 2011-2-18 19:26:19

处理成mathematica的表的形式就是:
{{-682,-680},
{-682,678},
{-343,-339},
{-343,337},
{-175,-167},
{-175,165},
{-142,-132},
{-142,130},
{-94,-78},
{-94,76},
{-79,-59},
{-79,57},
{-58,-24},
{-58,22},
{-55,-15},
{-55,13},
{53,-15},
{53,13},
{56,-24},
{56,22},
{77,-59},
{77,57},
{92,-78},
{92,76},
{140,-132},
{140,130},
{173,-167},
{173,165},
{341,-339},
{341,337},
{680,-680},
{680,678}}

不知道你说的最小值是什么意思,要不然我就能帮你解决了!

mathematica 发表于 2011-2-18 19:29:22


首先x+y+2和x-y同奇偶
所以如果c是奇数,那么直接对c的任意一个因子分解c=u*v,解方程
x+y+2=u,x-y=v即可
如果c是偶数,那么必须4的倍数才有解,然后因子分解c/4=u*v,解方程
x+y+2=2u,x-y=2v即可。
比如这里2720=4*680
然后将680分解成两个数的乘积,任何一种分解方法对应一个解
比如
x+y+2=2*1
x-y=2*680=1360
得到
x=680,y=-680
这样枚举所有整数解,找出其中的正整数解即可
mathe 发表于 2011-2-18 17:25 http://bbs.emath.ac.cn/images/common/back.gif

在这方面似乎还是mathematica爽一些,输入命令,回车,真爽!

forcal 发表于 2011-2-18 20:20:54

这种问题用优化方法还是比较方便的。Forcal中虽没有整数优化,借助实数优化算法还是可以求解的:!using["fcopt"];
f(a,b:x,y)= x=floor, y=floor, 1e10*[(x+y+2)*(x-y)-2720]^2+x+y;
Opt;结果:
53.29960419817672         13.40873406608969         66.

取整后结果就是:x=53,y=13

056254628 发表于 2011-2-18 21:08:35

$(x+y+2)(x-y)=c$
本题可以直接计算,不需要穷举,只要知道小于$sqrt(c)$的最大1、2个因子(或偶因子)即可。
-------------------------------------------------------------------------------------------------
因为c、x、y都是正整数,所以$x>y$.
设$x-y=d$
那么原等式就为 $(2y+d+2)*d=c$      (d为c的一个因子)
所以$y=(c/d-d)/2-1$
      $x=y+d$
要使得y、x为最小正整数,那么y为最小正整数就可以。
设$d=d_0$时,y、x为最小正整数
那么:
当c为偶数:$d_0$=max{d|d<$sqrt(c)$,d为偶数,d为c的一个因子,$c/d-d>2}$
当c为奇数:$d_0$=max{d|d<$sqrt(c)$,d为c的一个因子,$c/d-d>2$}
-----------------------------------------------------------------------------------------------
对于楼主的c=2720
那么$sqrt(c)=52.15$,2720的小于52.15的最大偶因子为40,因为2720/40-40=28>2
所以$d_0=40$.
    y=28/2-1=13
    x=13+40=53

056254628 发表于 2011-2-18 21:25:05

当c=48时,48的小于$sqrt(48)$的最大偶因子为6,但因为48/6-6=2,所以$d_0$不取6,但可以取次大的偶因子4,即$d_0=4$
所以y=(48/4-4)/2-1=3
      x=3+4=7

qianyb 发表于 2011-2-19 08:27:40

谢谢大家,主要是想了解解这道题的快速方法(如求根公式),如果只能用因式分解的话,说明这道题没有快速计算的方法了

qianyb 发表于 2011-2-19 08:31:36

14# mathematica
最小值就是x或y中任意一个最小的正整数(像你列出的答案中,最小值就是53,13)

056254628 发表于 2011-2-19 11:40:15

续15#:
计算公式还可化简成:
c为偶数,取$d_0$等于c的小于$sqrt(c+1)-1$的最大偶因子。
c为奇数,取$d_0$等于c的小于$sqrt(c+1)-1$的最大因子。
最小正整数解$y=(c/d_0-d_0)/2-1$
                        $x=y+d_0$
页: 1 [2]
查看完整版本: 求(x+y+2)(x-y)=2720的解的方法