x^2 + y^2 = z^2已知整数x

zhangwuji155 2009-06-13 02:56:25
(y,z)的整数解,有多少组?
如给出x=3,y,z可以是4,5

x=9,
我找到了两组
12, 35
40,41,
两组解

如何用极限证明是有限还是无限多?
如y++,y不断增大的时候,z会越来越接近y,所以Z不可能是整数了,怎么得出y到几的
时候,z就不可能是整数了,所以不用再y++下去了?

这是别人考我的问题,我当然不屑问完别人再回去回答,只是不明白,想搞清楚。
...全文
1453 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangwuji156 2009-06-19
  • 打赏
  • 举报
回复
没想到我的问题里
x=9,
我找到了两组
12, 35
40,41,
也验证了这个答案,再往大了找
y和z的差就小于1了
zhangwuji156 2009-06-19
  • 打赏
  • 举报
回复
根据我缜密的计算,结果是
y<=(x^2)/2
如x=9的时候,y最大是40
AYZBL 2009-06-18
  • 打赏
  • 举报
回复
从回帖中可以看出,这里程序员们的数学水平,

大多数只停留在高中阶段。。。。。。
honeyeyo 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 AYZBL 的回复:]
从回帖中可以看出,这里程序员们的数学水平,

大多数只停留在高中阶段。。。。。。
[/Quote]

大多数的程序只要小学程度的数学水平就够写出来了。
showjim 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 fire_woods 的回复:]
引用 5 楼 arong1234 的回复:
4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了

其实4楼的式子说明了另外一个问题,x^2=(z-y)*(z+y)很显然,当z+y > x*x时,是绝对不可能有解的,因为z-y至少是个正整数吧



因式分解不是大难题,编程实现的话很简单.
RSA加密方法之所以可行,是因为大数算法本身很慢,再加上大素数(…
[/Quote]
如果按照楼主的思路,麻烦楼主算算概率以后,再来说因式分解是否简单.
j8daxue 2009-06-15
  • 打赏
  • 举报
回复
这个不是勾股定理吗?
好像数论中有非常详细的讨论。
fire_woods 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 arong1234 的回复:]
4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了

其实4楼的式子说明了另外一个问题,x^2=(z-y)*(z+y)很显然,当z+y > x*x时,是绝对不可能有解的,因为z-y至少是个正整数吧
[/Quote]

因式分解不是大难题,编程实现的话很简单.
RSA加密方法之所以可行,是因为大数算法本身很慢,再加上大素数(100多位十进制数)的判断需要很长的时间.
所以对于一个由两个很大的素数乘积而成的合数,要重新分解成这两个素数,需要花费相当长的时间,比如最快的计算机也要好几百年,这才保证了他的不可破解性.

fire_woods 2009-06-15
  • 打赏
  • 举报
回复
楼主是想知道解是否有限,答案是肯定的.因式分解已经证明了解的有限性.

另外要求所有解的话,用因式分解的方法应该也不慢的.
arong1234 2009-06-14
  • 打赏
  • 举报
回复
楼主要的是一种可以非常容易结束循环的条件,大家都知道个数是有限的:)所以你说的很有道理,但是不具有可操作性,编程不可能用你的办法进行循环判断或者求解的。
[Quote=引用 11 楼 zeroieme 的回复:]
既然x^2=z^2-y^2=(z-y)*(z+y)
那么对整数(x^2)分解因数x^2=a*b,因数对 <a,b>肯定是有限的。

至于求解的运算量和证明是否解个数有限没有直接关系。
[/Quote]
liusichen_0 2009-06-14
  • 打赏
  • 举报
回复
如果(y+1)^2 - y^2 < x^2 则z<(y+1)并且z>y 这时肯定就无解了
(y+1)^2 - y^2
=1 + 2*y
现在只要判断 x^2 > 2*y + 1 就可以确定是否结束循环了
dwtsteven 2009-06-14
  • 打赏
  • 举报
回复
弱弱的问一句:
整数因式分解可是大难题吗?

怎么我觉得整数分解为两个整数的积是很容易的事呢?

首先分解为多个素数,然后分为两拨各自相乘,得出的因式对去重复,不久分解完毕了吗?

注:
整数可以是负数,那么z+y和z-y都可能是负数。
zhangwuji155 2009-06-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 arong1234 的回复:]
4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了

其实4楼的式子说明了另外一个问题,x^2=(z-y)*(z+y)很显然,当z+y > x*x时,是绝对不可能有解的,因为z-y至少是个正整数吧
[/Quote]
我也觉得这个不错
zhangwuji155 2009-06-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ptrunner 的回复:]
x^2=z^2-y^2=(z-y)*(z+y)>0
如果y无限逼近于Z,则z-y=0,所以0*(z+y)=0,与上式矛盾。
所以y不可能无限逼近与Z,肯定是有限的。
[/Quote]
他们相除极限是1,但相减极限是0吗?
zhangwuji155 2009-06-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wenzheng38 的回复:]
应该是无限多的,当y值不断增加时
只要sqrt(x^2 + y^2)值是整数即可
[/Quote]
不可靠想像,你这个说法就像前几天有人问,如何证明素数是无限还是有限,我同学直接就说因为数字是无限,这不对,应该给出证明,后来有人给出了证明,那个不错
绿色夹克衫 2009-06-14
  • 打赏
  • 举报
回复
解的个数肯定是有限的,就像上面提到的因式分解,解的个数绝对不会超过x^2,
求具体的解,可以用因式分解,分解x,然后就可以得到若干组2元1次方程,求解就可以了!
jzd8000 2009-06-14
  • 打赏
  • 举报
回复
哦!12楼已经说了!哈哈
jzd8000 2009-06-14
  • 打赏
  • 举报
回复
觉得只要找到使
y^2-(y-1)^2>x^2
成立的最小的y就可以了
贝隆 2009-06-14
  • 打赏
  • 举报
回复
这个似乎可以先从纯数学的角度来考虑一下更合适。
arong1234 2009-06-14
  • 打赏
  • 举报
回复
至于小整数的问题,其实有了x*x>=y+z,即使一个一个循环也不会很大计算量的,这是为什么我不考虑小整数的情况,为一个计算量很小的方法去思考太多没有什么意义
arong1234 2009-06-14
  • 打赏
  • 举报
回复
如前楼所说,我说的是当x很大的情况下的时候,因式分解是非常复杂的东西
你所说的算法,有几个问题需要解决:
1。要想分解成一堆素数,首先你必须有所有比sqrt(x)小的素数,而这个集合是不存在的
2。对于比较大的x,即使你有一个完整的素数集合,检查每个素数是否是x的因子也是代价很高的问题
你所说的注也是不正确的,对于楼主的式子,|z|必然大于|y|,而对于这种平方和,考虑小于0的整数是毫无意义的,因为一旦你有正整数解,负整数解是不需要代价就可以得到的,你为什么需要考虑它是负数的情况?
[Quote=引用 20 楼 dwtsteven 的回复:]
弱弱的问一句:
整数因式分解可是大难题吗?

怎么我觉得整数分解为两个整数的积是很容易的事呢?

首先分解为多个素数,然后分为两拨各自相乘,得出的因式对去重复,不久分解完毕了吗?

注:
整数可以是负数,那么z+y和z-y都可能是负数。
[/Quote]
加载更多回复(12)

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧