找回密码
 欢迎注册
楼主: qianyb

[求助] 求(x+y+2)(x-y)=2720的解的方法

[复制链接]
发表于 2011-2-18 19:10:48 | 显示全部楼层
我想了想,我还是应该把可复制的结果给你才好,所以就贴了上来
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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}}

不知道你说的最小值是什么意思,要不然我就能帮你解决了!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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


在这方面似乎还是mathematica爽一些,输入命令,回车,真爽!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-2-18 20:20:54 | 显示全部楼层
这种问题用优化方法还是比较方便的。Forcal中虽没有整数优化,借助实数优化算法还是可以求解的:
  1. !using["fcopt"];
  2. f(a,b:x,y)= x=floor[abs(a)], y=floor[abs(b)], 1e10*[(x+y+2)*(x-y)-2720]^2+x+y;
  3. Opt[HFor("f"), optrange,0,1e10,0,1e10];
复制代码
结果:
53.29960419817672         13.40873406608969         66.

取整后结果就是:x=53,  y=13
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-2-19 08:27:40 | 显示全部楼层
谢谢大家,主要是想了解解这道题的快速方法(如求根公式),如果只能用因式分解的话,说明这道题没有快速计算的方法了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-2-19 08:31:36 | 显示全部楼层
14# mathematica
最小值就是x或y中任意一个最小的正整数(像你列出的答案中,最小值就是53,13)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-5-3 01:55 , Processed in 0.042979 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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