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

时间:2021-12-29 19:16:39
(y,z)的整数解,有多少组?
如给出x=3,y,z可以是4,5

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

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

这是别人考我的问题,我当然不屑问完别人再回去回答,只是不明白,想搞清楚。

33 个解决方案

#1


先抢沙发!

#2


如y++,y不断增大的时候,z会越来越接近y,所以Z不可能是整数了
为什么啊?

#3


为什么不是整数呢?

#4


因式分解,(z+y)*(z-y)=x^2
既然都是整数,那么可以分解x^2。那么就可以确定z y的值了。是有限的。

#5


4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了

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

#6


x^2=(z-y)*(z+y) >= 1*(z+y) = y+z

#7


应该是无限多的,当y值不断增加时
只要sqrt(x^2 + y^2)值是整数即可

#8


不能靠想象证明题目,如前面证明,当y>2x时,x^2+y^2绝对不可能有整数平方根

引用 7 楼 wenzheng38 的回复:
应该是无限多的,当y值不断增加时 
只要sqrt(x^2 + y^2)值是整数即可

#9


引用 6 楼 arong1234 的回复:
x^2=(z-y)*(z+y) >= 1*(z+y) = y+z

我觉得这是个好解答

#10


x^2=z^2-y^2=(z-y)*(z+y)>0
如果y无限逼近于Z,则z-y=0,所以0*(z+y)=0,与上式矛盾。
所以y不可能无限逼近与Z,肯定是有限的。

#11


引用 5 楼 arong1234 的回复:
4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了

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


既然x^2=z^2-y^2=(z-y)*(z+y)
那么对整数(x^2)分解因数x^2=a*b,因数对<a,b>肯定是有限的。

至于求解的运算量和证明是否解个数有限没有直接关系。

#12


如果(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  就可以确定是否结束循环了

#13


楼主要的是一种可以非常容易结束循环的条件,大家都知道个数是有限的:)所以你说的很有道理,但是不具有可操作性,编程不可能用你的办法进行循环判断或者求解的。
引用 11 楼 zeroieme 的回复:
既然x^2=z^2-y^2=(z-y)*(z+y) 
那么对整数(x^2)分解因数x^2=a*b,因数对 <a,b>肯定是有限的。 

至于求解的运算量和证明是否解个数有限没有直接关系。

#14


觉得只要找到使
y^2-(y-1)^2>x^2
成立的最小的y就可以了

#15


哦!12楼已经说了!哈哈

#16


解的个数肯定是有限的,就像上面提到的因式分解,解的个数绝对不会超过x^2,
求具体的解,可以用因式分解,分解x,然后就可以得到若干组2元1次方程,求解就可以了!

#17


引用 7 楼 wenzheng38 的回复:
应该是无限多的,当y值不断增加时
只要sqrt(x^2 + y^2)值是整数即可

不可靠想像,你这个说法就像前几天有人问,如何证明素数是无限还是有限,我同学直接就说因为数字是无限,这不对,应该给出证明,后来有人给出了证明,那个不错

#18


引用 10 楼 ptrunner 的回复:
x^2=z^2-y^2=(z-y)*(z+y)>0
如果y无限逼近于Z,则z-y=0,所以0*(z+y)=0,与上式矛盾。
所以y不可能无限逼近与Z,肯定是有限的。

他们相除极限是1,但相减极限是0吗?

#19


引用 5 楼 arong1234 的回复:
4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了

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

我也觉得这个不错

#20


弱弱的问一句:
整数因式分解可是大难题吗?

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

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

注:
整数可以是负数,那么z+y和z-y都可能是负数。

#21


从LZ给出的内容来看,绝对不是大难题,阿荣同志说的是那些上百位的大素数!

以LZ给出的9为例子,

9 = 3 * 3 = 1 * 9 =>
81 = 1 * 81 = 3 * 27

Y + Z = 81
Y - Z = 1
=> Y = 41,Z = 40

Y + Z = 27
Y - Z = 3
=> Y = 15,Z = 12

引用 20 楼 dwtsteven 的回复:
弱弱的问一句: 
整数因式分解可是大难题吗? 

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

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

注: 
整数可以是负数,那么z+y和z-y都可能是负数。

#22


如前楼所说,我说的是当x很大的情况下的时候,因式分解是非常复杂的东西
你所说的算法,有几个问题需要解决:
1。要想分解成一堆素数,首先你必须有所有比sqrt(x)小的素数,而这个集合是不存在的
2。对于比较大的x,即使你有一个完整的素数集合,检查每个素数是否是x的因子也是代价很高的问题
你所说的注也是不正确的,对于楼主的式子,|z|必然大于|y|,而对于这种平方和,考虑小于0的整数是毫无意义的,因为一旦你有正整数解,负整数解是不需要代价就可以得到的,你为什么需要考虑它是负数的情况?
引用 20 楼 dwtsteven 的回复:
弱弱的问一句: 
整数因式分解可是大难题吗? 

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

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

注: 
整数可以是负数,那么z+y和z-y都可能是负数。

#23


至于小整数的问题,其实有了x*x>=y+z,即使一个一个循环也不会很大计算量的,这是为什么我不考虑小整数的情况,为一个计算量很小的方法去思考太多没有什么意义

#24


这个似乎可以先从纯数学的角度来考虑一下更合适。

#25


引用 5 楼 arong1234 的回复:
4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了 

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


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

#26


这个不是勾股定理吗?
好像数论中有非常详细的讨论。

#27


引用 25 楼 fire_woods 的回复:
引用 5 楼 arong1234 的回复:
4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了 

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



因式分解不是大难题,编程实现的话很简单. 
RSA加密方法之所以可行,是因为大数算法本身很慢,再加上大素数(…

如果按照楼主的思路,麻烦楼主算算概率以后,再来说因式分解是否简单.

#28


楼主是想知道解是否有限,答案是肯定的.因式分解已经证明了解的有限性.

另外要求所有解的话,用因式分解的方法应该也不慢的.

#29


从回帖中可以看出,这里程序员们的数学水平,

大多数只停留在高中阶段。。。。。。

#30


引用 29 楼 AYZBL 的回复:
从回帖中可以看出,这里程序员们的数学水平, 

大多数只停留在高中阶段。。。。。。 


大多数的程序只要小学程度的数学水平就够写出来了。

#31


该回复于2009-06-19 09:42:09被版主删除

#32


根据我缜密的计算,结果是
y<=(x^2)/2
如x=9的时候,y最大是40

#33


没想到我的问题里
x=9,
我找到了两组
12, 35
40,41, 
也验证了这个答案,再往大了找
y和z的差就小于1了

#1


先抢沙发!

#2


如y++,y不断增大的时候,z会越来越接近y,所以Z不可能是整数了
为什么啊?

#3


为什么不是整数呢?

#4


因式分解,(z+y)*(z-y)=x^2
既然都是整数,那么可以分解x^2。那么就可以确定z y的值了。是有限的。

#5


4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了

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

#6


x^2=(z-y)*(z+y) >= 1*(z+y) = y+z

#7


应该是无限多的,当y值不断增加时
只要sqrt(x^2 + y^2)值是整数即可

#8


不能靠想象证明题目,如前面证明,当y>2x时,x^2+y^2绝对不可能有整数平方根

引用 7 楼 wenzheng38 的回复:
应该是无限多的,当y值不断增加时 
只要sqrt(x^2 + y^2)值是整数即可

#9


引用 6 楼 arong1234 的回复:
x^2=(z-y)*(z+y) >= 1*(z+y) = y+z

我觉得这是个好解答

#10


x^2=z^2-y^2=(z-y)*(z+y)>0
如果y无限逼近于Z,则z-y=0,所以0*(z+y)=0,与上式矛盾。
所以y不可能无限逼近与Z,肯定是有限的。

#11


引用 5 楼 arong1234 的回复:
4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了

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


既然x^2=z^2-y^2=(z-y)*(z+y)
那么对整数(x^2)分解因数x^2=a*b,因数对<a,b>肯定是有限的。

至于求解的运算量和证明是否解个数有限没有直接关系。

#12


如果(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  就可以确定是否结束循环了

#13


楼主要的是一种可以非常容易结束循环的条件,大家都知道个数是有限的:)所以你说的很有道理,但是不具有可操作性,编程不可能用你的办法进行循环判断或者求解的。
引用 11 楼 zeroieme 的回复:
既然x^2=z^2-y^2=(z-y)*(z+y) 
那么对整数(x^2)分解因数x^2=a*b,因数对 <a,b>肯定是有限的。 

至于求解的运算量和证明是否解个数有限没有直接关系。

#14


觉得只要找到使
y^2-(y-1)^2>x^2
成立的最小的y就可以了

#15


哦!12楼已经说了!哈哈

#16


解的个数肯定是有限的,就像上面提到的因式分解,解的个数绝对不会超过x^2,
求具体的解,可以用因式分解,分解x,然后就可以得到若干组2元1次方程,求解就可以了!

#17


引用 7 楼 wenzheng38 的回复:
应该是无限多的,当y值不断增加时
只要sqrt(x^2 + y^2)值是整数即可

不可靠想像,你这个说法就像前几天有人问,如何证明素数是无限还是有限,我同学直接就说因为数字是无限,这不对,应该给出证明,后来有人给出了证明,那个不错

#18


引用 10 楼 ptrunner 的回复:
x^2=z^2-y^2=(z-y)*(z+y)>0
如果y无限逼近于Z,则z-y=0,所以0*(z+y)=0,与上式矛盾。
所以y不可能无限逼近与Z,肯定是有限的。

他们相除极限是1,但相减极限是0吗?

#19


引用 5 楼 arong1234 的回复:
4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了

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

我也觉得这个不错

#20


弱弱的问一句:
整数因式分解可是大难题吗?

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

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

注:
整数可以是负数,那么z+y和z-y都可能是负数。

#21


从LZ给出的内容来看,绝对不是大难题,阿荣同志说的是那些上百位的大素数!

以LZ给出的9为例子,

9 = 3 * 3 = 1 * 9 =>
81 = 1 * 81 = 3 * 27

Y + Z = 81
Y - Z = 1
=> Y = 41,Z = 40

Y + Z = 27
Y - Z = 3
=> Y = 15,Z = 12

引用 20 楼 dwtsteven 的回复:
弱弱的问一句: 
整数因式分解可是大难题吗? 

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

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

注: 
整数可以是负数,那么z+y和z-y都可能是负数。

#22


如前楼所说,我说的是当x很大的情况下的时候,因式分解是非常复杂的东西
你所说的算法,有几个问题需要解决:
1。要想分解成一堆素数,首先你必须有所有比sqrt(x)小的素数,而这个集合是不存在的
2。对于比较大的x,即使你有一个完整的素数集合,检查每个素数是否是x的因子也是代价很高的问题
你所说的注也是不正确的,对于楼主的式子,|z|必然大于|y|,而对于这种平方和,考虑小于0的整数是毫无意义的,因为一旦你有正整数解,负整数解是不需要代价就可以得到的,你为什么需要考虑它是负数的情况?
引用 20 楼 dwtsteven 的回复:
弱弱的问一句: 
整数因式分解可是大难题吗? 

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

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

注: 
整数可以是负数,那么z+y和z-y都可能是负数。

#23


至于小整数的问题,其实有了x*x>=y+z,即使一个一个循环也不会很大计算量的,这是为什么我不考虑小整数的情况,为一个计算量很小的方法去思考太多没有什么意义

#24


这个似乎可以先从纯数学的角度来考虑一下更合适。

#25


引用 5 楼 arong1234 的回复:
4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了 

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


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

#26


这个不是勾股定理吗?
好像数论中有非常详细的讨论。

#27


引用 25 楼 fire_woods 的回复:
引用 5 楼 arong1234 的回复:
4楼因式分解是好想法,但是做不到,要知道整数因式分解可是大难题,这也是RSA等加密方法所有可行的原因,如果因式分解可行,那哪些加密方法都没有意义了 

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



因式分解不是大难题,编程实现的话很简单. 
RSA加密方法之所以可行,是因为大数算法本身很慢,再加上大素数(…

如果按照楼主的思路,麻烦楼主算算概率以后,再来说因式分解是否简单.

#28


楼主是想知道解是否有限,答案是肯定的.因式分解已经证明了解的有限性.

另外要求所有解的话,用因式分解的方法应该也不慢的.

#29


从回帖中可以看出,这里程序员们的数学水平,

大多数只停留在高中阶段。。。。。。

#30


引用 29 楼 AYZBL 的回复:
从回帖中可以看出,这里程序员们的数学水平, 

大多数只停留在高中阶段。。。。。。 


大多数的程序只要小学程度的数学水平就够写出来了。

#31


该回复于2009-06-19 09:42:09被版主删除

#32


根据我缜密的计算,结果是
y<=(x^2)/2
如x=9的时候,y最大是40

#33


没想到我的问题里
x=9,
我找到了两组
12, 35
40,41, 
也验证了这个答案,再往大了找
y和z的差就小于1了