找回密码
 欢迎注册
楼主: 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, 2025-1-23 23:31 , Processed in 0.029690 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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