不会做!!
48 个解决方案
#1
不会吧,是有理数还是整数?
#2
a*a+5=x^2 ...(1)
a*a-5=y^2 ...(2)
(1) - (2)
10 = (x-y)(x+y)
解个不定方程。。题目我觉得应该是整数
a*a-5=y^2 ...(2)
(1) - (2)
10 = (x-y)(x+y)
解个不定方程。。题目我觉得应该是整数
#3
在 0 - 100 内我只找到了 41 / 12 , 不知道还有没有别的解.
设 a = m / n , m^2 / n^2 + 5 = n1^2 / n2^2 , m^2 / n^2 - 5 = n3^2 / n4^2 ( m , n , n1 , n2 , n3 , n4 为整数 ) 然后写了个程序求解, 只找到了 41 / 12
设 a = m / n , m^2 / n^2 + 5 = n1^2 / n2^2 , m^2 / n^2 - 5 = n3^2 / n4^2 ( m , n , n1 , n2 , n3 , n4 为整数 ) 然后写了个程序求解, 只找到了 41 / 12
#4
Let
u,v 满足:
u^4-v^4=5w^2
Let b=2*u^2*v^2, c=u^4-v^4, d=u^4+v^4, 那么
b^2+c^2=d^2
(b+c)^2+(b-c)^2=2d^2
而且10bc是完全平方数,
a^2=4bc/(10d^2)
就是一个解。
比如
u=3,v=1,w=4,b=18,c=80,d=82
a^2=4*18*80/(10*82^2),既a=12/41
u,v 满足:
u^4-v^4=5w^2
Let b=2*u^2*v^2, c=u^4-v^4, d=u^4+v^4, 那么
b^2+c^2=d^2
(b+c)^2+(b-c)^2=2d^2
而且10bc是完全平方数,
a^2=4bc/(10d^2)
就是一个解。
比如
u=3,v=1,w=4,b=18,c=80,d=82
a^2=4*18*80/(10*82^2),既a=12/41
#5
不管是整数还是有理数都有难度。不用程序怎么做?
#6
mark
#7
还有两种情况:
25u^4-v^4=w^2
b=10u^2v^2,c=w^2,d=25u^4+v^4
a^2=4bc/(10d^2)
和
u^4-25v^4=w^2
b=10u^2v^2,c=w^2,d=u^4+25v^4
a^2=4bc/(10d^2)
25u^4-v^4=w^2
b=10u^2v^2,c=w^2,d=25u^4+v^4
a^2=4bc/(10d^2)
和
u^4-25v^4=w^2
b=10u^2v^2,c=w^2,d=u^4+25v^4
a^2=4bc/(10d^2)
#8
对于第一种情况,在1<=v<u<=100时,计算机上可以找到3组
u=3 ,v=1
u=5 ,v=2
u=49 ,v=31
u=3 ,v=1
u=5 ,v=2
u=49 ,v=31
#9
对于第二种情况,在u<100时找不到解
第三种情况,u<100时,可以找到解
u=41,v=12
第三种情况,u<100时,可以找到解
u=41,v=12
#10
情况1:
u=3 ,v=1,a=48/41
u=5 ,v=2,a=2420/641
u=49 ,v=31,a=1470780864/3344161
情况3:
u=41 ,v=12,a=2270443224/3344161
u=3 ,v=1,a=48/41
u=5 ,v=2,a=2420/641
u=49 ,v=31,a=1470780864/3344161
情况3:
u=41 ,v=12,a=2270443224/3344161
#11
u=5,v=2这组解是错误的,我的程序忘了判断u%5!=0了。
还有a^2=(10d^2/4bc),我弄错了。
u=3 ,v=1,w=4,a=41/12
u=49 ,v=31,w=984,a=3344161/1494696
情况3为:
u=41 ,v=12,a=3344161/1494696
还有a^2=(10d^2/4bc),我弄错了。
u=3 ,v=1,w=4,a=41/12
u=49 ,v=31,w=984,a=3344161/1494696
情况3为:
u=41 ,v=12,a=3344161/1494696
#12
呵呵,好像对于a=x/y是第一种的解:
u=x,v=y就是第三种的一个解。
比如对于第三种
取u=3344161,v=1494696,w=sqrt(u^4-25*v^4)=535583225279
d=249850594047271558364480641
a=2*u*v/d=5354229862821602092291248/249850594047271558364480641
:)
u=x,v=y就是第三种的一个解。
比如对于第三种
取u=3344161,v=1494696,w=sqrt(u^4-25*v^4)=535583225279
d=249850594047271558364480641
a=2*u*v/d=5354229862821602092291248/249850594047271558364480641
:)
#13
不管是整数还是有理数都有难度。不用程序怎么做?
---------
不可能有整数解的,这个可以证明的。
mathe()好厉害啊,不过老实说我看不懂你的解答。
能不能稍微说明一下?从10bc是完全平方数这里开始我就看不懂了,有没有用到什么定理阿?
---------
不可能有整数解的,这个可以证明的。
mathe()好厉害啊,不过老实说我看不懂你的解答。
能不能稍微说明一下?从10bc是完全平方数这里开始我就看不懂了,有没有用到什么定理阿?
#14
Right, 现在证明:
a=x/y是一组解,那么u=x,v=y是第3组情况的一个解。
证明:
a^2+5是平方数,a^2-5是平方数
所以 (x^2+5y^2)/y^2, (x^2-5y^2)/y^2都是平方数
可以假设x^2+5y^2=z^2,x^2-5y^2=w^2
所以两式相乘,得到x^4-25y^4=(zw)^2
所以(u,v)=(x,y)是第3组情况的一个解。
这样,我们就可以得到无数组解 an=x(n)/y(n)
令x(0)=41,y(0)=12
w(n+1)=sqrt(x(n)^4-25y(n)^4)
x(n+1)=2*x(n)*y(n)*w(n+1)
y(n+1)=x(n)^4+25*y(n)^4
a=x/y是一组解,那么u=x,v=y是第3组情况的一个解。
证明:
a^2+5是平方数,a^2-5是平方数
所以 (x^2+5y^2)/y^2, (x^2-5y^2)/y^2都是平方数
可以假设x^2+5y^2=z^2,x^2-5y^2=w^2
所以两式相乘,得到x^4-25y^4=(zw)^2
所以(u,v)=(x,y)是第3组情况的一个解。
这样,我们就可以得到无数组解 an=x(n)/y(n)
令x(0)=41,y(0)=12
w(n+1)=sqrt(x(n)^4-25y(n)^4)
x(n+1)=2*x(n)*y(n)*w(n+1)
y(n+1)=x(n)^4+25*y(n)^4
#15
呵呵,现在介绍一下我的思路吧。
首先假设a=x/y (x,y是互素的两个正整数)
a^2+5,a^2-5是有理数的平方数,也就是
x^2+5y^2,x^2-5y^2
同时是整数的平方数
假设
x^2+5y^2=s^2 (1)
x^2-5y^2=t^2 (2)
所以
s^2+t^2=2*x^2
容易看出,s,t必然同奇偶,然后我们可以算出
((s+t)/2)^2+((s-t)/2)^2=x^2, 所以(s+t)/2,(s-t)/2,x构成勾股数。
记b=(s-t)/2,c=(s+t)/2,d=x,带入(1)-(2)式,得到
10y^2=4bc
所以4bc/10是完全平方数y
对于勾股数(b,c,d),我们只对它们互素的时候感兴趣(不然,我们可以让它们
除以公约数后,产生的结果是相同的),
所以我们只对b,c互素的情况感兴趣,这时还要求10bc是完全平方数。
互素勾股数(b,c,d)总可以写成:
b=2ef,c=e^2-f^2,d=e^2+f^2 (而且 (e,f)=1,e,f有一个是偶数)
10bc是完全平方数,b,c互素,这说明b,c除了2和5,其他的素因子都是偶数次的。
而c是奇数,可能的情况只有两种:
i) 2b是平方数,5c是平方数:
对应e=u^2,f=v^2,u^4-v^4=5w^2
ii)10b是平方数,c是平方数:
对应两种情况:
a) e=5u^2,f=v^2, 25u^4-v^4=w^2
b) e=u^2,f=5v^2, u^4-25v^4=w^2
现在看来最后一种情况最好用:)
首先假设a=x/y (x,y是互素的两个正整数)
a^2+5,a^2-5是有理数的平方数,也就是
x^2+5y^2,x^2-5y^2
同时是整数的平方数
假设
x^2+5y^2=s^2 (1)
x^2-5y^2=t^2 (2)
所以
s^2+t^2=2*x^2
容易看出,s,t必然同奇偶,然后我们可以算出
((s+t)/2)^2+((s-t)/2)^2=x^2, 所以(s+t)/2,(s-t)/2,x构成勾股数。
记b=(s-t)/2,c=(s+t)/2,d=x,带入(1)-(2)式,得到
10y^2=4bc
所以4bc/10是完全平方数y
对于勾股数(b,c,d),我们只对它们互素的时候感兴趣(不然,我们可以让它们
除以公约数后,产生的结果是相同的),
所以我们只对b,c互素的情况感兴趣,这时还要求10bc是完全平方数。
互素勾股数(b,c,d)总可以写成:
b=2ef,c=e^2-f^2,d=e^2+f^2 (而且 (e,f)=1,e,f有一个是偶数)
10bc是完全平方数,b,c互素,这说明b,c除了2和5,其他的素因子都是偶数次的。
而c是奇数,可能的情况只有两种:
i) 2b是平方数,5c是平方数:
对应e=u^2,f=v^2,u^4-v^4=5w^2
ii)10b是平方数,c是平方数:
对应两种情况:
a) e=5u^2,f=v^2, 25u^4-v^4=w^2
b) e=u^2,f=5v^2, u^4-25v^4=w^2
现在看来最后一种情况最好用:)
#16
呵呵,试着用perl算出前几个:
#!/usr/bin/perl
use bigint;
$x=41;$y=12;
for($i=0;$i<5;$i++){
print $x."/".$y."\n";
$x4=$x*$x*$x*$x;
$y4=$y*$y*$y*$y;
$w=sqrt($x4-25*$y4);
$y=2*$x*$y*$w;
$x=$x4+25*$y4;
}
printf $x."/".$y."\n";
41/12
3344161/1494696
249850594047271558364480641/5354229862821602092291248
3896941041458487485320832722469963686366256264486004169772710584821176712668535259971051251201565099266561/167019439477564254804819333692197516475269570978824403519721702282259070147808848039273138602363503527584
230638590010706539951652691321765649797317978719005197091454474994023113316556896645962493695224042733508050711348929839333268975425076706190718571368114565832606037337885928582148352474750670120752040879724475690861404690501755223470675148558466585162549271212820769607274299304455313343106018882796786159139807494557321400648575572140308309262269361197814735557256648342299738920538361329361569876924074413836967285770241/19767429784718866858428085056283425785575398765734975231914495280262724097119223236553294311630565215390269665248942922978356332780412188755004235077262835815506659105445580231649936579080522908031488946828462887996197678521722654938999680797825342526121209669440715850601892780380379639408683936548011786316379398615750442050564981848672414014688547764279613609774414409259731125380750385761077840796163600017039055654208
2833435737297490372197833435326963031011684868637946461070150165351815684051896857032734093509190251236931974618010974047831439617560168336051239135360468509194806635383606057063242542377527694732400912783414569195121219399866379733874310913147798808870315117598525466321577071782488478996841467439022092578591426787030042647529170690189895236669405822307376193233209939124415047200783526043721600086580203772213866914414960602484904081658312252799769021742671703939462433931754193257193468238433273695405674024010013699111943438119813028314805072419123370003912794206239543211441787705192006023339949917389155547067875903545721835567229123227334210214625560816136228473866547695397510239813500352270340001556862596588359933623387011277862095031386301080279595017575377487859894553796941243877183594834494850134796497363395872530118686100493004066221158065896257554770345549879292461870319747970914438994556033263199665390148334995079164844163123017012067694759291552683061804267821821892984757143889007666024467493670548415688000103534837544499791471064867335475554872757877160675314174728313487701213697906708165794776813869983730394420655377711245227845467252381791972000646322543509016541673112529228404817217174969969794109809112545004118087290653919535225973781791241949910389603254394169591220155427807694344610954636252179332723801164610663706196099774821865222704303740590524079384980619233873583078823907109990272667152050948158368034219733933854644311145269802597079889889141250414294546964991702839252319017607008346004019848941380660128245767941322813678426281917128802784829943414552368492502338875078565454113121952788582626726738132273960519921035944352297884060612317224961/484711131535783727126354980997507925476027575994762383014966976404866420670014155822253835682226373456238586549131754244932006453032635755009108775719807358095851178888614833323768270947942578315357314827079372473711720859866961118451378105432785402830951070253101220097545141275339312394556922478756006475287342513075956327483140791798905493794206912556781361495169185809590765180555088119078926495436792684045723223058934482361827025929693146321708174983816930222111426115636749801104587708671628711513908125860998646056956479344394473748435247671218817669001453308990441393140954507303218699458515863131230504952787280024827512835941732214798364813175736590072530248670491725960482526330120087485913937743270932750135788105338289734435931972969680558157115681351723802675369077596063385920288724332205517811957033056844347755239374901162843181190037571540110146622737476648085806045421221349682385028770129792236253616376221612458230629154835049146977551380847174111153114997821439365086626639116886924326202557165019643592815381632797151202576204726439427770532132364608125920827495458310311956905247912252670137142323428111445688647644671104733771440378130690331261325971599081147870372117868040762031132905196084730182509396286055335239641664877478254987160092862844461337840615592126261048930903078955430063365235532540819323676404560100575034490954539804559554412463487712748741699416607821668867946804631531053499138781419644438556008417096271498372828235195092586675783276605693494360492677030480546070621305881032944421595735681584841250788977321232062332115750789757506185072358249632985199420525015217579673564177091342110545393225107737173694619284584456859375722332692945536
#!/usr/bin/perl
use bigint;
$x=41;$y=12;
for($i=0;$i<5;$i++){
print $x."/".$y."\n";
$x4=$x*$x*$x*$x;
$y4=$y*$y*$y*$y;
$w=sqrt($x4-25*$y4);
$y=2*$x*$y*$w;
$x=$x4+25*$y4;
}
printf $x."/".$y."\n";
41/12
3344161/1494696
249850594047271558364480641/5354229862821602092291248
3896941041458487485320832722469963686366256264486004169772710584821176712668535259971051251201565099266561/167019439477564254804819333692197516475269570978824403519721702282259070147808848039273138602363503527584
230638590010706539951652691321765649797317978719005197091454474994023113316556896645962493695224042733508050711348929839333268975425076706190718571368114565832606037337885928582148352474750670120752040879724475690861404690501755223470675148558466585162549271212820769607274299304455313343106018882796786159139807494557321400648575572140308309262269361197814735557256648342299738920538361329361569876924074413836967285770241/19767429784718866858428085056283425785575398765734975231914495280262724097119223236553294311630565215390269665248942922978356332780412188755004235077262835815506659105445580231649936579080522908031488946828462887996197678521722654938999680797825342526121209669440715850601892780380379639408683936548011786316379398615750442050564981848672414014688547764279613609774414409259731125380750385761077840796163600017039055654208
2833435737297490372197833435326963031011684868637946461070150165351815684051896857032734093509190251236931974618010974047831439617560168336051239135360468509194806635383606057063242542377527694732400912783414569195121219399866379733874310913147798808870315117598525466321577071782488478996841467439022092578591426787030042647529170690189895236669405822307376193233209939124415047200783526043721600086580203772213866914414960602484904081658312252799769021742671703939462433931754193257193468238433273695405674024010013699111943438119813028314805072419123370003912794206239543211441787705192006023339949917389155547067875903545721835567229123227334210214625560816136228473866547695397510239813500352270340001556862596588359933623387011277862095031386301080279595017575377487859894553796941243877183594834494850134796497363395872530118686100493004066221158065896257554770345549879292461870319747970914438994556033263199665390148334995079164844163123017012067694759291552683061804267821821892984757143889007666024467493670548415688000103534837544499791471064867335475554872757877160675314174728313487701213697906708165794776813869983730394420655377711245227845467252381791972000646322543509016541673112529228404817217174969969794109809112545004118087290653919535225973781791241949910389603254394169591220155427807694344610954636252179332723801164610663706196099774821865222704303740590524079384980619233873583078823907109990272667152050948158368034219733933854644311145269802597079889889141250414294546964991702839252319017607008346004019848941380660128245767941322813678426281917128802784829943414552368492502338875078565454113121952788582626726738132273960519921035944352297884060612317224961/484711131535783727126354980997507925476027575994762383014966976404866420670014155822253835682226373456238586549131754244932006453032635755009108775719807358095851178888614833323768270947942578315357314827079372473711720859866961118451378105432785402830951070253101220097545141275339312394556922478756006475287342513075956327483140791798905493794206912556781361495169185809590765180555088119078926495436792684045723223058934482361827025929693146321708174983816930222111426115636749801104587708671628711513908125860998646056956479344394473748435247671218817669001453308990441393140954507303218699458515863131230504952787280024827512835941732214798364813175736590072530248670491725960482526330120087485913937743270932750135788105338289734435931972969680558157115681351723802675369077596063385920288724332205517811957033056844347755239374901162843181190037571540110146622737476648085806045421221349682385028770129792236253616376221612458230629154835049146977551380847174111153114997821439365086626639116886924326202557165019643592815381632797151202576204726439427770532132364608125920827495458310311956905247912252670137142323428111445688647644671104733771440378130690331261325971599081147870372117868040762031132905196084730182509396286055335239641664877478254987160092862844461337840615592126261048930903078955430063365235532540819323676404560100575034490954539804559554412463487712748741699416607821668867946804631531053499138781419644438556008417096271498372828235195092586675783276605693494360492677030480546070621305881032944421595735681584841250788977321232062332115750789757506185072358249632985199420525015217579673564177091342110545393225107737173694619284584456859375722332692945536
#17
mathe 牛就一个字。。。
#18
太强了!
#19
mathe:
见到神迹,不拜一下实在是不敬,在这里253一个。
数学大神mathe,请保佑我以后数学考试都拿个好分数吧。:)
见到神迹,不拜一下实在是不敬,在这里253一个。
数学大神mathe,请保佑我以后数学考试都拿个好分数吧。:)
#20
我看了大概一刻钟才大致看明白T_T
#21
强人了
#22
一个比一个笨,就是两个函数求他们的交点,一函数是x = sqr(a * a - 5),一函数是y=sqr(a * a + 5),在坐标轴上画一下,就知道是什么样的直线,他们有两个交点,求一下就可以了。
#23
hoho,楼上的至强,完全无视有理数和实数的区别......
恐怕就253一个是远远不够了。^_^
恐怕就253一个是远远不够了。^_^
#24
也请 doface(我路过了你) 大神保佑我能够无视生活中的艰难险阻,勇往直前吧!-_-;
#25
用一个有理数可以写成 两个 有理数相除 代码如下
估计有一点点问题
#include<iostream>
#include<math.h>
using namespace std;
bool ifCanSqrt(int x)
{
int n=(int)sqrt(x);
if(n*n==x)
return true;
else
return false;
}
void main()
{
for(int ix=1;ix<1000;ix++)
for(int iy=1;iy<1000;iy++)
{
int m=ix*ix+5*iy*iy;
int n=ix*ix-5*iy*iy;
if(ifCanSqrt(m))
if(ifCanSqrt(n))
cout<<ix<<" "<<iy<<endl;
}
}
估计有一点点问题
#include<iostream>
#include<math.h>
using namespace std;
bool ifCanSqrt(int x)
{
int n=(int)sqrt(x);
if(n*n==x)
return true;
else
return false;
}
void main()
{
for(int ix=1;ix<1000;ix++)
for(int iy=1;iy<1000;iy++)
{
int m=ix*ix+5*iy*iy;
int n=ix*ix-5*iy*iy;
if(ifCanSqrt(m))
if(ifCanSqrt(n))
cout<<ix<<" "<<iy<<endl;
}
}
#26
mathe:
你的解答我看了觉得似乎和DiabloWalkOnTheEarth(毁灭小符 (Annihilus)(99)(3502))复杂性差不多?
还是我看漏了什么东西?
我觉得似乎还是毁灭小符的比较直接一些。
你的解答我看了觉得似乎和DiabloWalkOnTheEarth(毁灭小符 (Annihilus)(99)(3502))复杂性差不多?
还是我看漏了什么东西?
我觉得似乎还是毁灭小符的比较直接一些。
#27
cycxp4363(......)
把你的算法思想解释清楚一点,好吗?
把你的算法思想解释清楚一点,好吗?
#28
253是什么意思?是不是只有神人才看得懂?我等凡眼是不行了:)
JustLikeTheWind(风):
你是说转化成第一步三种情况吧?
转化成(u,v)系列以后最大的好处是(u,v)远远小于(m,n)(a=m/n)
基本上m,n是u,v的四次方关系,所以用(u,v)去搜索的范围要远远小于(m,n)了
搜索0<v<u<100,相等于搜索(m,n)在0到10^8的范围了,这也是为什么我开始的算法可以找到两组
解,而DiabloWalkOnTheEarth只能找到一组解。
而且第一组解u=3,v=1满足(u^4-v^4=5w^2)很明显,开始我没有使用计算机就看出来了。
To ahhy:
cycxp4363的方法很直接,就是设a=ix/iy,那么 ix^2+5iy^2, ix^2-5iy^2都是完全平方数。
JustLikeTheWind(风):
你是说转化成第一步三种情况吧?
转化成(u,v)系列以后最大的好处是(u,v)远远小于(m,n)(a=m/n)
基本上m,n是u,v的四次方关系,所以用(u,v)去搜索的范围要远远小于(m,n)了
搜索0<v<u<100,相等于搜索(m,n)在0到10^8的范围了,这也是为什么我开始的算法可以找到两组
解,而DiabloWalkOnTheEarth只能找到一组解。
而且第一组解u=3,v=1满足(u^4-v^4=5w^2)很明显,开始我没有使用计算机就看出来了。
To ahhy:
cycxp4363的方法很直接,就是设a=ix/iy,那么 ix^2+5iy^2, ix^2-5iy^2都是完全平方数。
#29
现在再证明一点:我上面列出三种方程:
其中第二种和第三种的解都必然可以用第一种表示:
比如对于第二种的一个解:
(x0,y0,s) 满足
25x0^4-y0^4=s^2, 对应解:a=(25x0^4+y0^4)/(2x0y0s)
而且(x0,y0)=1,那么5x0^2-y0^2同5x0^2+y0^2互素,所以它们都是平方数,假设
5x0^2-y0^2=w0^2
5x0^2+y0^2=z0^2
那么z0^4-w0^4=5*(2x0y0)^2
所以u=z0,v=w0,w=2x0y0是第一种情况的一个解,
对应解为(z0^4+w0^4)/(2z0w0x0y0)=a
也就是通过第二种方式解出的解必然可以表示为第一种方式的解。
同样通过第三种方式解出的解也可以表示为第一种方式的解
也就是说,只要第一种方程就足够表示了。
反之,第一种情况的任意一个解,必然可以用第二种方式或者第三种方式表示(有且只能有一个)
比如解41/12就是属于第二种的。(u=1,v=2)
而且我现在感觉对于第二种只有唯一一个解,对于第三种,所有的解都可以通过上面递归方式给出。
不过现在还没有找到证明。
其中第二种和第三种的解都必然可以用第一种表示:
比如对于第二种的一个解:
(x0,y0,s) 满足
25x0^4-y0^4=s^2, 对应解:a=(25x0^4+y0^4)/(2x0y0s)
而且(x0,y0)=1,那么5x0^2-y0^2同5x0^2+y0^2互素,所以它们都是平方数,假设
5x0^2-y0^2=w0^2
5x0^2+y0^2=z0^2
那么z0^4-w0^4=5*(2x0y0)^2
所以u=z0,v=w0,w=2x0y0是第一种情况的一个解,
对应解为(z0^4+w0^4)/(2z0w0x0y0)=a
也就是通过第二种方式解出的解必然可以表示为第一种方式的解。
同样通过第三种方式解出的解也可以表示为第一种方式的解
也就是说,只要第一种方程就足够表示了。
反之,第一种情况的任意一个解,必然可以用第二种方式或者第三种方式表示(有且只能有一个)
比如解41/12就是属于第二种的。(u=1,v=2)
而且我现在感觉对于第二种只有唯一一个解,对于第三种,所有的解都可以通过上面递归方式给出。
不过现在还没有找到证明。
#30
第二种情况的解也不是唯一的:
比如方程
25u^4-v^4=w^2
还有一组互素的解:u=2257,v=1562,w=25353117
可以得到
a=135699514816341/178761481355556
构造方法如下:
对于方程5u^2=4s^4+t^4的解,取u=u,v=2st
25u^4-v^4=(4s^4+t^4)^2-16s^4t^4=(4s^4-t^4)^2,所以取w=4s^4-t^4就可以了。
比如(u=2257,v=1562)是通过s=11,t=71得到的。
(u=1,v=2)是通过s=1,t=1得到的。
此外还有s=1,t=2和s=71,t=22它们计算出的a同上面两个都相同。
现在我们知道第二种情况的解也不是唯一的。
如果能够计算出第二种情况的所有解,然后把这些解作为初始值,带入第三种情况进行迭代,就可以得到所有的第三种情况的解。
比如方程
25u^4-v^4=w^2
还有一组互素的解:u=2257,v=1562,w=25353117
可以得到
a=135699514816341/178761481355556
构造方法如下:
对于方程5u^2=4s^4+t^4的解,取u=u,v=2st
25u^4-v^4=(4s^4+t^4)^2-16s^4t^4=(4s^4-t^4)^2,所以取w=4s^4-t^4就可以了。
比如(u=2257,v=1562)是通过s=11,t=71得到的。
(u=1,v=2)是通过s=1,t=1得到的。
此外还有s=1,t=2和s=71,t=22它们计算出的a同上面两个都相同。
现在我们知道第二种情况的解也不是唯一的。
如果能够计算出第二种情况的所有解,然后把这些解作为初始值,带入第三种情况进行迭代,就可以得到所有的第三种情况的解。
#31
上面a算错了,是642780541615689/178761481355556
#32
呵呵,上面还是错了。
现在通过先的第二种情况的解,我们又可以得到一系列情况3的解:
654686219104361/178761481355556
209239116668342644167838867143329714389679018137228536721441/93092380947563478644577555596900542802151091304399908363272
3794348487019039925749542059168247734797908973709179106909983896239377149515833243882286461568616348484744491510655657143661239022616957713454682013208875160676334692233507498261805795066141359230489600095452352932525466146406241929029761/243925260823291529729692315005448859561634050754936816805200100984783618700778962443357837295164825784916534061038440057954285176440604434211160839097473045564824135067123979950653214644895642133945988446008361351138718118630288888299024
207364430083289887306917248265176096518857981645462902868504798091754202260825583409895319188959462224847241752421626616161014877081435692849550193568633125665218149739525971640532334126691439163268851475907330790423611818390279300970707752287358942865876973376416469872280909079124665236320464139770291310201031642325408470721770267276253966505707135540099621647613354081934352911374127888639261077350989546158309363721959849792305514886953186022569732775857920051066563004090503605311935911100676458947187615329444701352956338573403802250756630773471486838493527994952130506437946300399125284844254413703199511309112933692340207491327621738540087619615083094972358297721192466233971637302656412523830838006230481887378890733258867510300963866643548479762304024122921630162372461667746643087564321981902980377028464770617242777938822749701936328198597103934224252113495873023654064678697677964175011710840299369622725954114597052926897871242374423041/26644383802526085744736421561294879699078713412473603781719070365535395480804939427471215230954946855798217099140387691275068944060152676069185175625835014006276422698858368042149591070592802546370017881232658654576464938019395755758723833216303735337625436919230945425551994053339428713070338053858734395865556171114199370053806875871908434203621185200134663913270135894619064154902731070694972954897378064428990436567474775231571765781337305138157197761032225105822159467642761014814353792431577288404876299838410751098610182295620157698893880893757984174256863783537769845204811841153546311055179606836840483382053981507812161318144115951830344446282026503222639918768351610920016013464315564009129936810512708692217363784821751276945062637083362385939467482936171236750565570393814191165165321790194941688892523213651298340456214328948603289527126670400768158455561820051575667870780119348107038276522331491132104127354654321229553096086284063712
现在通过先的第二种情况的解,我们又可以得到一系列情况3的解:
654686219104361/178761481355556
209239116668342644167838867143329714389679018137228536721441/93092380947563478644577555596900542802151091304399908363272
3794348487019039925749542059168247734797908973709179106909983896239377149515833243882286461568616348484744491510655657143661239022616957713454682013208875160676334692233507498261805795066141359230489600095452352932525466146406241929029761/243925260823291529729692315005448859561634050754936816805200100984783618700778962443357837295164825784916534061038440057954285176440604434211160839097473045564824135067123979950653214644895642133945988446008361351138718118630288888299024
207364430083289887306917248265176096518857981645462902868504798091754202260825583409895319188959462224847241752421626616161014877081435692849550193568633125665218149739525971640532334126691439163268851475907330790423611818390279300970707752287358942865876973376416469872280909079124665236320464139770291310201031642325408470721770267276253966505707135540099621647613354081934352911374127888639261077350989546158309363721959849792305514886953186022569732775857920051066563004090503605311935911100676458947187615329444701352956338573403802250756630773471486838493527994952130506437946300399125284844254413703199511309112933692340207491327621738540087619615083094972358297721192466233971637302656412523830838006230481887378890733258867510300963866643548479762304024122921630162372461667746643087564321981902980377028464770617242777938822749701936328198597103934224252113495873023654064678697677964175011710840299369622725954114597052926897871242374423041/26644383802526085744736421561294879699078713412473603781719070365535395480804939427471215230954946855798217099140387691275068944060152676069185175625835014006276422698858368042149591070592802546370017881232658654576464938019395755758723833216303735337625436919230945425551994053339428713070338053858734395865556171114199370053806875871908434203621185200134663913270135894619064154902731070694972954897378064428990436567474775231571765781337305138157197761032225105822159467642761014814353792431577288404876299838410751098610182295620157698893880893757984174256863783537769845204811841153546311055179606836840483382053981507812161318144115951830344446282026503222639918768351610920016013464315564009129936810512708692217363784821751276945062637083362385939467482936171236750565570393814191165165321790194941688892523213651298340456214328948603289527126670400768158455561820051575667870780119348107038276522331491132104127354654321229553096086284063712
#33
I看的我头都大了
#34
眼花了
#35
现在来个汇总,说明一下该如何解决这个问题:
第一步:
通过计算机搜索方程
5u^2 = 4*s^4+t^4 (t为奇数)
的解。 现在我直搜索到两组解(s=1,t=1和s=11,t=71)
第二步:
对于每组第一步得到的(s,t,u)取v=2st,w=4s^4-t^4,d=25u^4+v^4,
我们可以得到一组解a=d/(2uvw)
第三步:
对于第二步或者第三步得到的每个解a=d/(2uvw)=p/q (化成即约方式,可以减少后面的计算量),
取u=p,v=q,u^4-25v^4是平方数,取 w=sqrt(u^4-25v^4),d=u^4+25v^4,
我们可以得到一组解a=d/(2uvw).
而且如果第一步我们能够找到方程5u^2=4*s^4+t^4的所有解,通过这种算法我们可以找到所有可能的a.
第一步:
通过计算机搜索方程
5u^2 = 4*s^4+t^4 (t为奇数)
的解。 现在我直搜索到两组解(s=1,t=1和s=11,t=71)
第二步:
对于每组第一步得到的(s,t,u)取v=2st,w=4s^4-t^4,d=25u^4+v^4,
我们可以得到一组解a=d/(2uvw)
第三步:
对于第二步或者第三步得到的每个解a=d/(2uvw)=p/q (化成即约方式,可以减少后面的计算量),
取u=p,v=q,u^4-25v^4是平方数,取 w=sqrt(u^4-25v^4),d=u^4+25v^4,
我们可以得到一组解a=d/(2uvw).
而且如果第一步我们能够找到方程5u^2=4*s^4+t^4的所有解,通过这种算法我们可以找到所有可能的a.
#36
我的想法是这样的:
假设a=x/y; -----------(1)
因为a^2+5和a^2-5也是有理数的平方
所以可以假设a^2+5=m^2/n^2 ------(2)
a^2-5=k^2/l^2 -------(3)
把(1)代入(2)和(3)可以得到
(x^2+5*y^2)/y^2=m^2/n^2
(x^2-5^y^2)/y^2=k^2/l^2
换句话说就是只要x^2+5*y^2 和x^2-5*y^2的平方根要为整数;
所以我的程序就是去搜索x和y 使得上面的条件成了;我的1000内结果为 41/12
假设a=x/y; -----------(1)
因为a^2+5和a^2-5也是有理数的平方
所以可以假设a^2+5=m^2/n^2 ------(2)
a^2-5=k^2/l^2 -------(3)
把(1)代入(2)和(3)可以得到
(x^2+5*y^2)/y^2=m^2/n^2
(x^2-5^y^2)/y^2=k^2/l^2
换句话说就是只要x^2+5*y^2 和x^2-5*y^2的平方根要为整数;
所以我的程序就是去搜索x和y 使得上面的条件成了;我的1000内结果为 41/12
#37
关于方程:5u^2 = 4*s^4+t^4
我又得到两组解
t=892225,s=2493275
和
t=11045611921
s=5822032439
通过它们,我们可以得到第二种情况另外两个解(肯定分子分母都巨大无比)。
可以通过下列方式得到更多5u^2=4*s^4+t^4的解
搜索方程:
25A^4+30A^2*B^2+B^4=W^2
Let P1=B/A
P2=(-2P1+sqrt(25+30*P1^2+P1^4))/(1+P1^2)=D/C
那么P1,P2都是有理数
Let m=B*D,n=A*C
t=m^2-25n^2+10mn
s=m^2-25n^2
就是一个解。
方程25A^4+30A^2*B^2+B^4=W^2
我搜索到三个解:
A=1,B=6,C=1,D=1;
A=6,B=5,C=61,D=185;
A=588,B=1271,C=37,D=61;
其中A=1,B=6,C=1,D=1对应s=11,t=71.
我又得到两组解
t=892225,s=2493275
和
t=11045611921
s=5822032439
通过它们,我们可以得到第二种情况另外两个解(肯定分子分母都巨大无比)。
可以通过下列方式得到更多5u^2=4*s^4+t^4的解
搜索方程:
25A^4+30A^2*B^2+B^4=W^2
Let P1=B/A
P2=(-2P1+sqrt(25+30*P1^2+P1^4))/(1+P1^2)=D/C
那么P1,P2都是有理数
Let m=B*D,n=A*C
t=m^2-25n^2+10mn
s=m^2-25n^2
就是一个解。
方程25A^4+30A^2*B^2+B^4=W^2
我搜索到三个解:
A=1,B=6,C=1,D=1;
A=6,B=5,C=61,D=185;
A=588,B=1271,C=37,D=61;
其中A=1,B=6,C=1,D=1对应s=11,t=71.
#38
呵呵,25A^4+30A^2*B^2+B^4=W^2的下一个解中
B=1562*5283=8252046
再下一个为
B=3344161*113279=378823213919
任取两个平方数u2,v2,分别让m,n取5u2+v2和5u2-v2 (如果是负数取相反数,可以m取和,n取差,也可以m取和,n取差),如果2m^2-n^2 是平方数(或者平方数的相反数),那么
B=mn,A=2*m^2-3mn+n^2
B=1562*5283=8252046
再下一个为
B=3344161*113279=378823213919
任取两个平方数u2,v2,分别让m,n取5u2+v2和5u2-v2 (如果是负数取相反数,可以m取和,n取差,也可以m取和,n取差),如果2m^2-n^2 是平方数(或者平方数的相反数),那么
B=mn,A=2*m^2-3mn+n^2
#39
方程25A^4+30A^2*B^2+B^4=W^2的解也可以通过递归来计算。
设 (A,B)是上面的一组解,那么:
记s=5A^2-B^2,t=5A^2+B^2
B'=st
A'=sqrt((s^4-3*s^2*t^2+2*t^4)/5)
就是一组解,如A=1,B=6,可得,A'=588,B'=-1271
下面给出方程的前几个解:
A=1,B=6
A=588,B=-1271
A=7066924182696,B=378823213919
A=1339292487821310144844876208030955730130705238172848,B=62353608713680834676537482331752184610397022133175679
A=653847017052681596985858386354972304592004671926407283004142638688138544810228375879362674859384259102583909848347601781674930175841262966955807108200483322024747022729914713948712732290509718978030014591911584,B=-15116249878927084323082375162074881670718984563501618492997336351956894910033543773404638070549516482211174394094412444035050568807695310556722764118509673769328904184606696785693209474773808545042791608377633281
A=4642102823897693968460880211990481491126387340980503652403394793038199360975204789102998089937767391669497789716199275804782225247129170511061073666415512302917558851804345309213156589028523818499010516153110429962372759836269753415362990392343912287388310595878272971393481519848494416249430528956335963879011088620487075868391470709309530504555454394533473595643680508732063330558506185278015420706803630031879900826374428372969236088723501865519113349502887061629838682028723727496983670355565514459845529671847440509267954219855800161884600307837862521859132037659764592001328267359941993377942108539506027174786281275282368759939289085775132058996906116958661975415731806988624526139864471175664697141115466536614068698117406130915496629582710338362777986947371533584452248934365105221630774112465836888546887782034074363371470875489471808,B=-52208142508226584564173148081824184622796492490012921884102603428039998024667098090942066752817503946085834495109712498509322180691350504118697014043994522006040322430484406865169840472033747250005425611840359802659706692164411537879783652943136669530328945171621517833179116752493788903569544954617184781753660345476698103495495235837073175550434239219078247949237285297580430236298658725601259776113575227210593124620210692737806075248751026499229004496981617259782653170634944495728332537161881089178751267100111650123518456044586524835170101071553519531832651134630332923118289908189925873653359747207200457072345083593516713324599128689711857171370066198469952662623619945603909198350050446768272429011931324212842579192401311217845195311534508896184529021138162592392309767443140901198829889474726851089155904307179846768135109890442373121
对应的perl程序:
#!/usr/bin/perl
use bigint;
$A=1;
$B=6;
for($i=0;$i<6;$i++){
print "A=".$A.",B=".$B."\n";
$s=5*$A*$A-$B*$B;
$t=5*$A*$A+$B*$B;
$B=$s*$t;
$u=$s*$s*$s*$s-3*$s*$s*$t*$t+2*$t*$t*$t*$t;
$u=$u/5;
$A=sqrt($u);
$s=$A * $A;
print "Error\n" unless ($s eq $u);
}
printf "A=".$A.",B=".$B."\n";
设 (A,B)是上面的一组解,那么:
记s=5A^2-B^2,t=5A^2+B^2
B'=st
A'=sqrt((s^4-3*s^2*t^2+2*t^4)/5)
就是一组解,如A=1,B=6,可得,A'=588,B'=-1271
下面给出方程的前几个解:
A=1,B=6
A=588,B=-1271
A=7066924182696,B=378823213919
A=1339292487821310144844876208030955730130705238172848,B=62353608713680834676537482331752184610397022133175679
A=653847017052681596985858386354972304592004671926407283004142638688138544810228375879362674859384259102583909848347601781674930175841262966955807108200483322024747022729914713948712732290509718978030014591911584,B=-15116249878927084323082375162074881670718984563501618492997336351956894910033543773404638070549516482211174394094412444035050568807695310556722764118509673769328904184606696785693209474773808545042791608377633281
A=4642102823897693968460880211990481491126387340980503652403394793038199360975204789102998089937767391669497789716199275804782225247129170511061073666415512302917558851804345309213156589028523818499010516153110429962372759836269753415362990392343912287388310595878272971393481519848494416249430528956335963879011088620487075868391470709309530504555454394533473595643680508732063330558506185278015420706803630031879900826374428372969236088723501865519113349502887061629838682028723727496983670355565514459845529671847440509267954219855800161884600307837862521859132037659764592001328267359941993377942108539506027174786281275282368759939289085775132058996906116958661975415731806988624526139864471175664697141115466536614068698117406130915496629582710338362777986947371533584452248934365105221630774112465836888546887782034074363371470875489471808,B=-52208142508226584564173148081824184622796492490012921884102603428039998024667098090942066752817503946085834495109712498509322180691350504118697014043994522006040322430484406865169840472033747250005425611840359802659706692164411537879783652943136669530328945171621517833179116752493788903569544954617184781753660345476698103495495235837073175550434239219078247949237285297580430236298658725601259776113575227210593124620210692737806075248751026499229004496981617259782653170634944495728332537161881089178751267100111650123518456044586524835170101071553519531832651134630332923118289908189925873653359747207200457072345083593516713324599128689711857171370066198469952662623619945603909198350050446768272429011931324212842579192401311217845195311534508896184529021138162592392309767443140901198829889474726851089155904307179846768135109890442373121
对应的perl程序:
#!/usr/bin/perl
use bigint;
$A=1;
$B=6;
for($i=0;$i<6;$i++){
print "A=".$A.",B=".$B."\n";
$s=5*$A*$A-$B*$B;
$t=5*$A*$A+$B*$B;
$B=$s*$t;
$u=$s*$s*$s*$s-3*$s*$s*$t*$t+2*$t*$t*$t*$t;
$u=$u/5;
$A=sqrt($u);
$s=$A * $A;
print "Error\n" unless ($s eq $u);
}
printf "A=".$A.",B=".$B."\n";
#40
To mathe()
我来说一下“253”
JustLikeTheWind(风) 是个mopper(也就是经常逛www.mop.com的人)
mathe()哥你上www.mop.com不出一个小时就可以找到“253”所表示的含义。
我来说一下“253”
JustLikeTheWind(风) 是个mopper(也就是经常逛www.mop.com的人)
mathe()哥你上www.mop.com不出一个小时就可以找到“253”所表示的含义。
#41
253实乃敬佩、拜服之意。
#42
mathe就不一样,编个算法竟然用的是perl,呵呵,牛啊。
#43
整数就简单了
#44
啊,是perl语言啊,我还纳闷哪,看不懂啊。
mathe老大能不能改成c啊,这里的人估计没有几个能看懂perl语言的^_^
mathe老大能不能改成c啊,这里的人估计没有几个能看懂perl语言的^_^
#45
如果用c语言写上面的代码,太复杂了,主要是c里面不支持任意长度的整数。
(通常c语言提供的整数不超过2^64).
其实上面的perl程序很简单的。
第一行
#!/usr/bin/perl
用处不大,是在Linux下面告诉计算机这个文件是perl脚本。
下一行:
use bigint;
相当于c里面的头文件,告诉计算机,要使用任意精度的超大整数,这样,后面所有的变量
都可以使用任意长度的整数了。
而程序里面我只使用了for循环,通c的语法也是一致的。
唯一区别是在perl里面,所有的变量名称都要以$开头,而且变量使用之前都不需要声明。
函数print用来输出内容到标准输出(就是c中的stdout)
print "Error\n" unless ($s eq $u);
其实就是c中 if( $s != $u){
printf("Error\n");
}
eq 是表示相等。
(通常c语言提供的整数不超过2^64).
其实上面的perl程序很简单的。
第一行
#!/usr/bin/perl
用处不大,是在Linux下面告诉计算机这个文件是perl脚本。
下一行:
use bigint;
相当于c里面的头文件,告诉计算机,要使用任意精度的超大整数,这样,后面所有的变量
都可以使用任意长度的整数了。
而程序里面我只使用了for循环,通c的语法也是一致的。
唯一区别是在perl里面,所有的变量名称都要以$开头,而且变量使用之前都不需要声明。
函数print用来输出内容到标准输出(就是c中的stdout)
print "Error\n" unless ($s eq $u);
其实就是c中 if( $s != $u){
printf("Error\n");
}
eq 是表示相等。
#46
真的很佩服 mathe() ,以后得多跟你学学分析问题的方法,也希望以后有问题能得到各位大侠的指点。
#47
非常感谢各位老大!
#48
mathe是超高手啊,mathe程序对应的cpp版,用cryptlib
#include <cryptlib/integer.h>
#include <iostream>
using namespace std;
using namespace CryptoPP;
/*
#!/usr/bin/perl
use bigint;
$A=1;
$B=6;
for($i=0;$i<6;$i++){
print "A=".$A.",B=".$B."\n";
$s=5*$A*$A-$B*$B;
$t=5*$A*$A+$B*$B;
$B=$s*$t;
$u=$s*$s*$s*$s-3*$s*$s*$t*$t+2*$t*$t*$t*$t;
$u=$u/5;
$A=sqrt($u);
$s=$A * $A;
print "Error\n" unless ($s eq $u);
}
printf "A=".$A.",B=".$B."\n";
*/
int main()
{
Integer A = 1 , B = 6 , s , t , u;
for( int i = 0; i < 6; ++i )
{
cout << "A= " << A << " , B= " << B << endl;
s = 5 * A * A - B * B;
t = 5 * A * A + B * B;
B = s * t;
u = s * s * s * s - 3 * s * s * t * t + 2 * t * t * t * t;
u /= 5;
A = u.SquareRoot();
s = A * A;
if( s != u )
{
cerr << "Error" << endl;
break;
}
}
}
#include <cryptlib/integer.h>
#include <iostream>
using namespace std;
using namespace CryptoPP;
/*
#!/usr/bin/perl
use bigint;
$A=1;
$B=6;
for($i=0;$i<6;$i++){
print "A=".$A.",B=".$B."\n";
$s=5*$A*$A-$B*$B;
$t=5*$A*$A+$B*$B;
$B=$s*$t;
$u=$s*$s*$s*$s-3*$s*$s*$t*$t+2*$t*$t*$t*$t;
$u=$u/5;
$A=sqrt($u);
$s=$A * $A;
print "Error\n" unless ($s eq $u);
}
printf "A=".$A.",B=".$B."\n";
*/
int main()
{
Integer A = 1 , B = 6 , s , t , u;
for( int i = 0; i < 6; ++i )
{
cout << "A= " << A << " , B= " << B << endl;
s = 5 * A * A - B * B;
t = 5 * A * A + B * B;
B = s * t;
u = s * s * s * s - 3 * s * s * t * t + 2 * t * t * t * t;
u /= 5;
A = u.SquareRoot();
s = A * A;
if( s != u )
{
cerr << "Error" << endl;
break;
}
}
}
#1
不会吧,是有理数还是整数?
#2
a*a+5=x^2 ...(1)
a*a-5=y^2 ...(2)
(1) - (2)
10 = (x-y)(x+y)
解个不定方程。。题目我觉得应该是整数
a*a-5=y^2 ...(2)
(1) - (2)
10 = (x-y)(x+y)
解个不定方程。。题目我觉得应该是整数
#3
在 0 - 100 内我只找到了 41 / 12 , 不知道还有没有别的解.
设 a = m / n , m^2 / n^2 + 5 = n1^2 / n2^2 , m^2 / n^2 - 5 = n3^2 / n4^2 ( m , n , n1 , n2 , n3 , n4 为整数 ) 然后写了个程序求解, 只找到了 41 / 12
设 a = m / n , m^2 / n^2 + 5 = n1^2 / n2^2 , m^2 / n^2 - 5 = n3^2 / n4^2 ( m , n , n1 , n2 , n3 , n4 为整数 ) 然后写了个程序求解, 只找到了 41 / 12
#4
Let
u,v 满足:
u^4-v^4=5w^2
Let b=2*u^2*v^2, c=u^4-v^4, d=u^4+v^4, 那么
b^2+c^2=d^2
(b+c)^2+(b-c)^2=2d^2
而且10bc是完全平方数,
a^2=4bc/(10d^2)
就是一个解。
比如
u=3,v=1,w=4,b=18,c=80,d=82
a^2=4*18*80/(10*82^2),既a=12/41
u,v 满足:
u^4-v^4=5w^2
Let b=2*u^2*v^2, c=u^4-v^4, d=u^4+v^4, 那么
b^2+c^2=d^2
(b+c)^2+(b-c)^2=2d^2
而且10bc是完全平方数,
a^2=4bc/(10d^2)
就是一个解。
比如
u=3,v=1,w=4,b=18,c=80,d=82
a^2=4*18*80/(10*82^2),既a=12/41
#5
不管是整数还是有理数都有难度。不用程序怎么做?
#6
mark
#7
还有两种情况:
25u^4-v^4=w^2
b=10u^2v^2,c=w^2,d=25u^4+v^4
a^2=4bc/(10d^2)
和
u^4-25v^4=w^2
b=10u^2v^2,c=w^2,d=u^4+25v^4
a^2=4bc/(10d^2)
25u^4-v^4=w^2
b=10u^2v^2,c=w^2,d=25u^4+v^4
a^2=4bc/(10d^2)
和
u^4-25v^4=w^2
b=10u^2v^2,c=w^2,d=u^4+25v^4
a^2=4bc/(10d^2)
#8
对于第一种情况,在1<=v<u<=100时,计算机上可以找到3组
u=3 ,v=1
u=5 ,v=2
u=49 ,v=31
u=3 ,v=1
u=5 ,v=2
u=49 ,v=31
#9
对于第二种情况,在u<100时找不到解
第三种情况,u<100时,可以找到解
u=41,v=12
第三种情况,u<100时,可以找到解
u=41,v=12
#10
情况1:
u=3 ,v=1,a=48/41
u=5 ,v=2,a=2420/641
u=49 ,v=31,a=1470780864/3344161
情况3:
u=41 ,v=12,a=2270443224/3344161
u=3 ,v=1,a=48/41
u=5 ,v=2,a=2420/641
u=49 ,v=31,a=1470780864/3344161
情况3:
u=41 ,v=12,a=2270443224/3344161
#11
u=5,v=2这组解是错误的,我的程序忘了判断u%5!=0了。
还有a^2=(10d^2/4bc),我弄错了。
u=3 ,v=1,w=4,a=41/12
u=49 ,v=31,w=984,a=3344161/1494696
情况3为:
u=41 ,v=12,a=3344161/1494696
还有a^2=(10d^2/4bc),我弄错了。
u=3 ,v=1,w=4,a=41/12
u=49 ,v=31,w=984,a=3344161/1494696
情况3为:
u=41 ,v=12,a=3344161/1494696
#12
呵呵,好像对于a=x/y是第一种的解:
u=x,v=y就是第三种的一个解。
比如对于第三种
取u=3344161,v=1494696,w=sqrt(u^4-25*v^4)=535583225279
d=249850594047271558364480641
a=2*u*v/d=5354229862821602092291248/249850594047271558364480641
:)
u=x,v=y就是第三种的一个解。
比如对于第三种
取u=3344161,v=1494696,w=sqrt(u^4-25*v^4)=535583225279
d=249850594047271558364480641
a=2*u*v/d=5354229862821602092291248/249850594047271558364480641
:)
#13
不管是整数还是有理数都有难度。不用程序怎么做?
---------
不可能有整数解的,这个可以证明的。
mathe()好厉害啊,不过老实说我看不懂你的解答。
能不能稍微说明一下?从10bc是完全平方数这里开始我就看不懂了,有没有用到什么定理阿?
---------
不可能有整数解的,这个可以证明的。
mathe()好厉害啊,不过老实说我看不懂你的解答。
能不能稍微说明一下?从10bc是完全平方数这里开始我就看不懂了,有没有用到什么定理阿?
#14
Right, 现在证明:
a=x/y是一组解,那么u=x,v=y是第3组情况的一个解。
证明:
a^2+5是平方数,a^2-5是平方数
所以 (x^2+5y^2)/y^2, (x^2-5y^2)/y^2都是平方数
可以假设x^2+5y^2=z^2,x^2-5y^2=w^2
所以两式相乘,得到x^4-25y^4=(zw)^2
所以(u,v)=(x,y)是第3组情况的一个解。
这样,我们就可以得到无数组解 an=x(n)/y(n)
令x(0)=41,y(0)=12
w(n+1)=sqrt(x(n)^4-25y(n)^4)
x(n+1)=2*x(n)*y(n)*w(n+1)
y(n+1)=x(n)^4+25*y(n)^4
a=x/y是一组解,那么u=x,v=y是第3组情况的一个解。
证明:
a^2+5是平方数,a^2-5是平方数
所以 (x^2+5y^2)/y^2, (x^2-5y^2)/y^2都是平方数
可以假设x^2+5y^2=z^2,x^2-5y^2=w^2
所以两式相乘,得到x^4-25y^4=(zw)^2
所以(u,v)=(x,y)是第3组情况的一个解。
这样,我们就可以得到无数组解 an=x(n)/y(n)
令x(0)=41,y(0)=12
w(n+1)=sqrt(x(n)^4-25y(n)^4)
x(n+1)=2*x(n)*y(n)*w(n+1)
y(n+1)=x(n)^4+25*y(n)^4
#15
呵呵,现在介绍一下我的思路吧。
首先假设a=x/y (x,y是互素的两个正整数)
a^2+5,a^2-5是有理数的平方数,也就是
x^2+5y^2,x^2-5y^2
同时是整数的平方数
假设
x^2+5y^2=s^2 (1)
x^2-5y^2=t^2 (2)
所以
s^2+t^2=2*x^2
容易看出,s,t必然同奇偶,然后我们可以算出
((s+t)/2)^2+((s-t)/2)^2=x^2, 所以(s+t)/2,(s-t)/2,x构成勾股数。
记b=(s-t)/2,c=(s+t)/2,d=x,带入(1)-(2)式,得到
10y^2=4bc
所以4bc/10是完全平方数y
对于勾股数(b,c,d),我们只对它们互素的时候感兴趣(不然,我们可以让它们
除以公约数后,产生的结果是相同的),
所以我们只对b,c互素的情况感兴趣,这时还要求10bc是完全平方数。
互素勾股数(b,c,d)总可以写成:
b=2ef,c=e^2-f^2,d=e^2+f^2 (而且 (e,f)=1,e,f有一个是偶数)
10bc是完全平方数,b,c互素,这说明b,c除了2和5,其他的素因子都是偶数次的。
而c是奇数,可能的情况只有两种:
i) 2b是平方数,5c是平方数:
对应e=u^2,f=v^2,u^4-v^4=5w^2
ii)10b是平方数,c是平方数:
对应两种情况:
a) e=5u^2,f=v^2, 25u^4-v^4=w^2
b) e=u^2,f=5v^2, u^4-25v^4=w^2
现在看来最后一种情况最好用:)
首先假设a=x/y (x,y是互素的两个正整数)
a^2+5,a^2-5是有理数的平方数,也就是
x^2+5y^2,x^2-5y^2
同时是整数的平方数
假设
x^2+5y^2=s^2 (1)
x^2-5y^2=t^2 (2)
所以
s^2+t^2=2*x^2
容易看出,s,t必然同奇偶,然后我们可以算出
((s+t)/2)^2+((s-t)/2)^2=x^2, 所以(s+t)/2,(s-t)/2,x构成勾股数。
记b=(s-t)/2,c=(s+t)/2,d=x,带入(1)-(2)式,得到
10y^2=4bc
所以4bc/10是完全平方数y
对于勾股数(b,c,d),我们只对它们互素的时候感兴趣(不然,我们可以让它们
除以公约数后,产生的结果是相同的),
所以我们只对b,c互素的情况感兴趣,这时还要求10bc是完全平方数。
互素勾股数(b,c,d)总可以写成:
b=2ef,c=e^2-f^2,d=e^2+f^2 (而且 (e,f)=1,e,f有一个是偶数)
10bc是完全平方数,b,c互素,这说明b,c除了2和5,其他的素因子都是偶数次的。
而c是奇数,可能的情况只有两种:
i) 2b是平方数,5c是平方数:
对应e=u^2,f=v^2,u^4-v^4=5w^2
ii)10b是平方数,c是平方数:
对应两种情况:
a) e=5u^2,f=v^2, 25u^4-v^4=w^2
b) e=u^2,f=5v^2, u^4-25v^4=w^2
现在看来最后一种情况最好用:)
#16
呵呵,试着用perl算出前几个:
#!/usr/bin/perl
use bigint;
$x=41;$y=12;
for($i=0;$i<5;$i++){
print $x."/".$y."\n";
$x4=$x*$x*$x*$x;
$y4=$y*$y*$y*$y;
$w=sqrt($x4-25*$y4);
$y=2*$x*$y*$w;
$x=$x4+25*$y4;
}
printf $x."/".$y."\n";
41/12
3344161/1494696
249850594047271558364480641/5354229862821602092291248
3896941041458487485320832722469963686366256264486004169772710584821176712668535259971051251201565099266561/167019439477564254804819333692197516475269570978824403519721702282259070147808848039273138602363503527584
230638590010706539951652691321765649797317978719005197091454474994023113316556896645962493695224042733508050711348929839333268975425076706190718571368114565832606037337885928582148352474750670120752040879724475690861404690501755223470675148558466585162549271212820769607274299304455313343106018882796786159139807494557321400648575572140308309262269361197814735557256648342299738920538361329361569876924074413836967285770241/19767429784718866858428085056283425785575398765734975231914495280262724097119223236553294311630565215390269665248942922978356332780412188755004235077262835815506659105445580231649936579080522908031488946828462887996197678521722654938999680797825342526121209669440715850601892780380379639408683936548011786316379398615750442050564981848672414014688547764279613609774414409259731125380750385761077840796163600017039055654208
2833435737297490372197833435326963031011684868637946461070150165351815684051896857032734093509190251236931974618010974047831439617560168336051239135360468509194806635383606057063242542377527694732400912783414569195121219399866379733874310913147798808870315117598525466321577071782488478996841467439022092578591426787030042647529170690189895236669405822307376193233209939124415047200783526043721600086580203772213866914414960602484904081658312252799769021742671703939462433931754193257193468238433273695405674024010013699111943438119813028314805072419123370003912794206239543211441787705192006023339949917389155547067875903545721835567229123227334210214625560816136228473866547695397510239813500352270340001556862596588359933623387011277862095031386301080279595017575377487859894553796941243877183594834494850134796497363395872530118686100493004066221158065896257554770345549879292461870319747970914438994556033263199665390148334995079164844163123017012067694759291552683061804267821821892984757143889007666024467493670548415688000103534837544499791471064867335475554872757877160675314174728313487701213697906708165794776813869983730394420655377711245227845467252381791972000646322543509016541673112529228404817217174969969794109809112545004118087290653919535225973781791241949910389603254394169591220155427807694344610954636252179332723801164610663706196099774821865222704303740590524079384980619233873583078823907109990272667152050948158368034219733933854644311145269802597079889889141250414294546964991702839252319017607008346004019848941380660128245767941322813678426281917128802784829943414552368492502338875078565454113121952788582626726738132273960519921035944352297884060612317224961/484711131535783727126354980997507925476027575994762383014966976404866420670014155822253835682226373456238586549131754244932006453032635755009108775719807358095851178888614833323768270947942578315357314827079372473711720859866961118451378105432785402830951070253101220097545141275339312394556922478756006475287342513075956327483140791798905493794206912556781361495169185809590765180555088119078926495436792684045723223058934482361827025929693146321708174983816930222111426115636749801104587708671628711513908125860998646056956479344394473748435247671218817669001453308990441393140954507303218699458515863131230504952787280024827512835941732214798364813175736590072530248670491725960482526330120087485913937743270932750135788105338289734435931972969680558157115681351723802675369077596063385920288724332205517811957033056844347755239374901162843181190037571540110146622737476648085806045421221349682385028770129792236253616376221612458230629154835049146977551380847174111153114997821439365086626639116886924326202557165019643592815381632797151202576204726439427770532132364608125920827495458310311956905247912252670137142323428111445688647644671104733771440378130690331261325971599081147870372117868040762031132905196084730182509396286055335239641664877478254987160092862844461337840615592126261048930903078955430063365235532540819323676404560100575034490954539804559554412463487712748741699416607821668867946804631531053499138781419644438556008417096271498372828235195092586675783276605693494360492677030480546070621305881032944421595735681584841250788977321232062332115750789757506185072358249632985199420525015217579673564177091342110545393225107737173694619284584456859375722332692945536
#!/usr/bin/perl
use bigint;
$x=41;$y=12;
for($i=0;$i<5;$i++){
print $x."/".$y."\n";
$x4=$x*$x*$x*$x;
$y4=$y*$y*$y*$y;
$w=sqrt($x4-25*$y4);
$y=2*$x*$y*$w;
$x=$x4+25*$y4;
}
printf $x."/".$y."\n";
41/12
3344161/1494696
249850594047271558364480641/5354229862821602092291248
3896941041458487485320832722469963686366256264486004169772710584821176712668535259971051251201565099266561/167019439477564254804819333692197516475269570978824403519721702282259070147808848039273138602363503527584
230638590010706539951652691321765649797317978719005197091454474994023113316556896645962493695224042733508050711348929839333268975425076706190718571368114565832606037337885928582148352474750670120752040879724475690861404690501755223470675148558466585162549271212820769607274299304455313343106018882796786159139807494557321400648575572140308309262269361197814735557256648342299738920538361329361569876924074413836967285770241/19767429784718866858428085056283425785575398765734975231914495280262724097119223236553294311630565215390269665248942922978356332780412188755004235077262835815506659105445580231649936579080522908031488946828462887996197678521722654938999680797825342526121209669440715850601892780380379639408683936548011786316379398615750442050564981848672414014688547764279613609774414409259731125380750385761077840796163600017039055654208
2833435737297490372197833435326963031011684868637946461070150165351815684051896857032734093509190251236931974618010974047831439617560168336051239135360468509194806635383606057063242542377527694732400912783414569195121219399866379733874310913147798808870315117598525466321577071782488478996841467439022092578591426787030042647529170690189895236669405822307376193233209939124415047200783526043721600086580203772213866914414960602484904081658312252799769021742671703939462433931754193257193468238433273695405674024010013699111943438119813028314805072419123370003912794206239543211441787705192006023339949917389155547067875903545721835567229123227334210214625560816136228473866547695397510239813500352270340001556862596588359933623387011277862095031386301080279595017575377487859894553796941243877183594834494850134796497363395872530118686100493004066221158065896257554770345549879292461870319747970914438994556033263199665390148334995079164844163123017012067694759291552683061804267821821892984757143889007666024467493670548415688000103534837544499791471064867335475554872757877160675314174728313487701213697906708165794776813869983730394420655377711245227845467252381791972000646322543509016541673112529228404817217174969969794109809112545004118087290653919535225973781791241949910389603254394169591220155427807694344610954636252179332723801164610663706196099774821865222704303740590524079384980619233873583078823907109990272667152050948158368034219733933854644311145269802597079889889141250414294546964991702839252319017607008346004019848941380660128245767941322813678426281917128802784829943414552368492502338875078565454113121952788582626726738132273960519921035944352297884060612317224961/484711131535783727126354980997507925476027575994762383014966976404866420670014155822253835682226373456238586549131754244932006453032635755009108775719807358095851178888614833323768270947942578315357314827079372473711720859866961118451378105432785402830951070253101220097545141275339312394556922478756006475287342513075956327483140791798905493794206912556781361495169185809590765180555088119078926495436792684045723223058934482361827025929693146321708174983816930222111426115636749801104587708671628711513908125860998646056956479344394473748435247671218817669001453308990441393140954507303218699458515863131230504952787280024827512835941732214798364813175736590072530248670491725960482526330120087485913937743270932750135788105338289734435931972969680558157115681351723802675369077596063385920288724332205517811957033056844347755239374901162843181190037571540110146622737476648085806045421221349682385028770129792236253616376221612458230629154835049146977551380847174111153114997821439365086626639116886924326202557165019643592815381632797151202576204726439427770532132364608125920827495458310311956905247912252670137142323428111445688647644671104733771440378130690331261325971599081147870372117868040762031132905196084730182509396286055335239641664877478254987160092862844461337840615592126261048930903078955430063365235532540819323676404560100575034490954539804559554412463487712748741699416607821668867946804631531053499138781419644438556008417096271498372828235195092586675783276605693494360492677030480546070621305881032944421595735681584841250788977321232062332115750789757506185072358249632985199420525015217579673564177091342110545393225107737173694619284584456859375722332692945536
#17
mathe 牛就一个字。。。
#18
太强了!
#19
mathe:
见到神迹,不拜一下实在是不敬,在这里253一个。
数学大神mathe,请保佑我以后数学考试都拿个好分数吧。:)
见到神迹,不拜一下实在是不敬,在这里253一个。
数学大神mathe,请保佑我以后数学考试都拿个好分数吧。:)
#20
我看了大概一刻钟才大致看明白T_T
#21
强人了
#22
一个比一个笨,就是两个函数求他们的交点,一函数是x = sqr(a * a - 5),一函数是y=sqr(a * a + 5),在坐标轴上画一下,就知道是什么样的直线,他们有两个交点,求一下就可以了。
#23
hoho,楼上的至强,完全无视有理数和实数的区别......
恐怕就253一个是远远不够了。^_^
恐怕就253一个是远远不够了。^_^
#24
也请 doface(我路过了你) 大神保佑我能够无视生活中的艰难险阻,勇往直前吧!-_-;
#25
用一个有理数可以写成 两个 有理数相除 代码如下
估计有一点点问题
#include<iostream>
#include<math.h>
using namespace std;
bool ifCanSqrt(int x)
{
int n=(int)sqrt(x);
if(n*n==x)
return true;
else
return false;
}
void main()
{
for(int ix=1;ix<1000;ix++)
for(int iy=1;iy<1000;iy++)
{
int m=ix*ix+5*iy*iy;
int n=ix*ix-5*iy*iy;
if(ifCanSqrt(m))
if(ifCanSqrt(n))
cout<<ix<<" "<<iy<<endl;
}
}
估计有一点点问题
#include<iostream>
#include<math.h>
using namespace std;
bool ifCanSqrt(int x)
{
int n=(int)sqrt(x);
if(n*n==x)
return true;
else
return false;
}
void main()
{
for(int ix=1;ix<1000;ix++)
for(int iy=1;iy<1000;iy++)
{
int m=ix*ix+5*iy*iy;
int n=ix*ix-5*iy*iy;
if(ifCanSqrt(m))
if(ifCanSqrt(n))
cout<<ix<<" "<<iy<<endl;
}
}
#26
mathe:
你的解答我看了觉得似乎和DiabloWalkOnTheEarth(毁灭小符 (Annihilus)(99)(3502))复杂性差不多?
还是我看漏了什么东西?
我觉得似乎还是毁灭小符的比较直接一些。
你的解答我看了觉得似乎和DiabloWalkOnTheEarth(毁灭小符 (Annihilus)(99)(3502))复杂性差不多?
还是我看漏了什么东西?
我觉得似乎还是毁灭小符的比较直接一些。
#27
cycxp4363(......)
把你的算法思想解释清楚一点,好吗?
把你的算法思想解释清楚一点,好吗?
#28
253是什么意思?是不是只有神人才看得懂?我等凡眼是不行了:)
JustLikeTheWind(风):
你是说转化成第一步三种情况吧?
转化成(u,v)系列以后最大的好处是(u,v)远远小于(m,n)(a=m/n)
基本上m,n是u,v的四次方关系,所以用(u,v)去搜索的范围要远远小于(m,n)了
搜索0<v<u<100,相等于搜索(m,n)在0到10^8的范围了,这也是为什么我开始的算法可以找到两组
解,而DiabloWalkOnTheEarth只能找到一组解。
而且第一组解u=3,v=1满足(u^4-v^4=5w^2)很明显,开始我没有使用计算机就看出来了。
To ahhy:
cycxp4363的方法很直接,就是设a=ix/iy,那么 ix^2+5iy^2, ix^2-5iy^2都是完全平方数。
JustLikeTheWind(风):
你是说转化成第一步三种情况吧?
转化成(u,v)系列以后最大的好处是(u,v)远远小于(m,n)(a=m/n)
基本上m,n是u,v的四次方关系,所以用(u,v)去搜索的范围要远远小于(m,n)了
搜索0<v<u<100,相等于搜索(m,n)在0到10^8的范围了,这也是为什么我开始的算法可以找到两组
解,而DiabloWalkOnTheEarth只能找到一组解。
而且第一组解u=3,v=1满足(u^4-v^4=5w^2)很明显,开始我没有使用计算机就看出来了。
To ahhy:
cycxp4363的方法很直接,就是设a=ix/iy,那么 ix^2+5iy^2, ix^2-5iy^2都是完全平方数。
#29
现在再证明一点:我上面列出三种方程:
其中第二种和第三种的解都必然可以用第一种表示:
比如对于第二种的一个解:
(x0,y0,s) 满足
25x0^4-y0^4=s^2, 对应解:a=(25x0^4+y0^4)/(2x0y0s)
而且(x0,y0)=1,那么5x0^2-y0^2同5x0^2+y0^2互素,所以它们都是平方数,假设
5x0^2-y0^2=w0^2
5x0^2+y0^2=z0^2
那么z0^4-w0^4=5*(2x0y0)^2
所以u=z0,v=w0,w=2x0y0是第一种情况的一个解,
对应解为(z0^4+w0^4)/(2z0w0x0y0)=a
也就是通过第二种方式解出的解必然可以表示为第一种方式的解。
同样通过第三种方式解出的解也可以表示为第一种方式的解
也就是说,只要第一种方程就足够表示了。
反之,第一种情况的任意一个解,必然可以用第二种方式或者第三种方式表示(有且只能有一个)
比如解41/12就是属于第二种的。(u=1,v=2)
而且我现在感觉对于第二种只有唯一一个解,对于第三种,所有的解都可以通过上面递归方式给出。
不过现在还没有找到证明。
其中第二种和第三种的解都必然可以用第一种表示:
比如对于第二种的一个解:
(x0,y0,s) 满足
25x0^4-y0^4=s^2, 对应解:a=(25x0^4+y0^4)/(2x0y0s)
而且(x0,y0)=1,那么5x0^2-y0^2同5x0^2+y0^2互素,所以它们都是平方数,假设
5x0^2-y0^2=w0^2
5x0^2+y0^2=z0^2
那么z0^4-w0^4=5*(2x0y0)^2
所以u=z0,v=w0,w=2x0y0是第一种情况的一个解,
对应解为(z0^4+w0^4)/(2z0w0x0y0)=a
也就是通过第二种方式解出的解必然可以表示为第一种方式的解。
同样通过第三种方式解出的解也可以表示为第一种方式的解
也就是说,只要第一种方程就足够表示了。
反之,第一种情况的任意一个解,必然可以用第二种方式或者第三种方式表示(有且只能有一个)
比如解41/12就是属于第二种的。(u=1,v=2)
而且我现在感觉对于第二种只有唯一一个解,对于第三种,所有的解都可以通过上面递归方式给出。
不过现在还没有找到证明。
#30
第二种情况的解也不是唯一的:
比如方程
25u^4-v^4=w^2
还有一组互素的解:u=2257,v=1562,w=25353117
可以得到
a=135699514816341/178761481355556
构造方法如下:
对于方程5u^2=4s^4+t^4的解,取u=u,v=2st
25u^4-v^4=(4s^4+t^4)^2-16s^4t^4=(4s^4-t^4)^2,所以取w=4s^4-t^4就可以了。
比如(u=2257,v=1562)是通过s=11,t=71得到的。
(u=1,v=2)是通过s=1,t=1得到的。
此外还有s=1,t=2和s=71,t=22它们计算出的a同上面两个都相同。
现在我们知道第二种情况的解也不是唯一的。
如果能够计算出第二种情况的所有解,然后把这些解作为初始值,带入第三种情况进行迭代,就可以得到所有的第三种情况的解。
比如方程
25u^4-v^4=w^2
还有一组互素的解:u=2257,v=1562,w=25353117
可以得到
a=135699514816341/178761481355556
构造方法如下:
对于方程5u^2=4s^4+t^4的解,取u=u,v=2st
25u^4-v^4=(4s^4+t^4)^2-16s^4t^4=(4s^4-t^4)^2,所以取w=4s^4-t^4就可以了。
比如(u=2257,v=1562)是通过s=11,t=71得到的。
(u=1,v=2)是通过s=1,t=1得到的。
此外还有s=1,t=2和s=71,t=22它们计算出的a同上面两个都相同。
现在我们知道第二种情况的解也不是唯一的。
如果能够计算出第二种情况的所有解,然后把这些解作为初始值,带入第三种情况进行迭代,就可以得到所有的第三种情况的解。
#31
上面a算错了,是642780541615689/178761481355556
#32
呵呵,上面还是错了。
现在通过先的第二种情况的解,我们又可以得到一系列情况3的解:
654686219104361/178761481355556
209239116668342644167838867143329714389679018137228536721441/93092380947563478644577555596900542802151091304399908363272
3794348487019039925749542059168247734797908973709179106909983896239377149515833243882286461568616348484744491510655657143661239022616957713454682013208875160676334692233507498261805795066141359230489600095452352932525466146406241929029761/243925260823291529729692315005448859561634050754936816805200100984783618700778962443357837295164825784916534061038440057954285176440604434211160839097473045564824135067123979950653214644895642133945988446008361351138718118630288888299024
207364430083289887306917248265176096518857981645462902868504798091754202260825583409895319188959462224847241752421626616161014877081435692849550193568633125665218149739525971640532334126691439163268851475907330790423611818390279300970707752287358942865876973376416469872280909079124665236320464139770291310201031642325408470721770267276253966505707135540099621647613354081934352911374127888639261077350989546158309363721959849792305514886953186022569732775857920051066563004090503605311935911100676458947187615329444701352956338573403802250756630773471486838493527994952130506437946300399125284844254413703199511309112933692340207491327621738540087619615083094972358297721192466233971637302656412523830838006230481887378890733258867510300963866643548479762304024122921630162372461667746643087564321981902980377028464770617242777938822749701936328198597103934224252113495873023654064678697677964175011710840299369622725954114597052926897871242374423041/26644383802526085744736421561294879699078713412473603781719070365535395480804939427471215230954946855798217099140387691275068944060152676069185175625835014006276422698858368042149591070592802546370017881232658654576464938019395755758723833216303735337625436919230945425551994053339428713070338053858734395865556171114199370053806875871908434203621185200134663913270135894619064154902731070694972954897378064428990436567474775231571765781337305138157197761032225105822159467642761014814353792431577288404876299838410751098610182295620157698893880893757984174256863783537769845204811841153546311055179606836840483382053981507812161318144115951830344446282026503222639918768351610920016013464315564009129936810512708692217363784821751276945062637083362385939467482936171236750565570393814191165165321790194941688892523213651298340456214328948603289527126670400768158455561820051575667870780119348107038276522331491132104127354654321229553096086284063712
现在通过先的第二种情况的解,我们又可以得到一系列情况3的解:
654686219104361/178761481355556
209239116668342644167838867143329714389679018137228536721441/93092380947563478644577555596900542802151091304399908363272
3794348487019039925749542059168247734797908973709179106909983896239377149515833243882286461568616348484744491510655657143661239022616957713454682013208875160676334692233507498261805795066141359230489600095452352932525466146406241929029761/243925260823291529729692315005448859561634050754936816805200100984783618700778962443357837295164825784916534061038440057954285176440604434211160839097473045564824135067123979950653214644895642133945988446008361351138718118630288888299024
207364430083289887306917248265176096518857981645462902868504798091754202260825583409895319188959462224847241752421626616161014877081435692849550193568633125665218149739525971640532334126691439163268851475907330790423611818390279300970707752287358942865876973376416469872280909079124665236320464139770291310201031642325408470721770267276253966505707135540099621647613354081934352911374127888639261077350989546158309363721959849792305514886953186022569732775857920051066563004090503605311935911100676458947187615329444701352956338573403802250756630773471486838493527994952130506437946300399125284844254413703199511309112933692340207491327621738540087619615083094972358297721192466233971637302656412523830838006230481887378890733258867510300963866643548479762304024122921630162372461667746643087564321981902980377028464770617242777938822749701936328198597103934224252113495873023654064678697677964175011710840299369622725954114597052926897871242374423041/26644383802526085744736421561294879699078713412473603781719070365535395480804939427471215230954946855798217099140387691275068944060152676069185175625835014006276422698858368042149591070592802546370017881232658654576464938019395755758723833216303735337625436919230945425551994053339428713070338053858734395865556171114199370053806875871908434203621185200134663913270135894619064154902731070694972954897378064428990436567474775231571765781337305138157197761032225105822159467642761014814353792431577288404876299838410751098610182295620157698893880893757984174256863783537769845204811841153546311055179606836840483382053981507812161318144115951830344446282026503222639918768351610920016013464315564009129936810512708692217363784821751276945062637083362385939467482936171236750565570393814191165165321790194941688892523213651298340456214328948603289527126670400768158455561820051575667870780119348107038276522331491132104127354654321229553096086284063712
#33
I看的我头都大了
#34
眼花了
#35
现在来个汇总,说明一下该如何解决这个问题:
第一步:
通过计算机搜索方程
5u^2 = 4*s^4+t^4 (t为奇数)
的解。 现在我直搜索到两组解(s=1,t=1和s=11,t=71)
第二步:
对于每组第一步得到的(s,t,u)取v=2st,w=4s^4-t^4,d=25u^4+v^4,
我们可以得到一组解a=d/(2uvw)
第三步:
对于第二步或者第三步得到的每个解a=d/(2uvw)=p/q (化成即约方式,可以减少后面的计算量),
取u=p,v=q,u^4-25v^4是平方数,取 w=sqrt(u^4-25v^4),d=u^4+25v^4,
我们可以得到一组解a=d/(2uvw).
而且如果第一步我们能够找到方程5u^2=4*s^4+t^4的所有解,通过这种算法我们可以找到所有可能的a.
第一步:
通过计算机搜索方程
5u^2 = 4*s^4+t^4 (t为奇数)
的解。 现在我直搜索到两组解(s=1,t=1和s=11,t=71)
第二步:
对于每组第一步得到的(s,t,u)取v=2st,w=4s^4-t^4,d=25u^4+v^4,
我们可以得到一组解a=d/(2uvw)
第三步:
对于第二步或者第三步得到的每个解a=d/(2uvw)=p/q (化成即约方式,可以减少后面的计算量),
取u=p,v=q,u^4-25v^4是平方数,取 w=sqrt(u^4-25v^4),d=u^4+25v^4,
我们可以得到一组解a=d/(2uvw).
而且如果第一步我们能够找到方程5u^2=4*s^4+t^4的所有解,通过这种算法我们可以找到所有可能的a.
#36
我的想法是这样的:
假设a=x/y; -----------(1)
因为a^2+5和a^2-5也是有理数的平方
所以可以假设a^2+5=m^2/n^2 ------(2)
a^2-5=k^2/l^2 -------(3)
把(1)代入(2)和(3)可以得到
(x^2+5*y^2)/y^2=m^2/n^2
(x^2-5^y^2)/y^2=k^2/l^2
换句话说就是只要x^2+5*y^2 和x^2-5*y^2的平方根要为整数;
所以我的程序就是去搜索x和y 使得上面的条件成了;我的1000内结果为 41/12
假设a=x/y; -----------(1)
因为a^2+5和a^2-5也是有理数的平方
所以可以假设a^2+5=m^2/n^2 ------(2)
a^2-5=k^2/l^2 -------(3)
把(1)代入(2)和(3)可以得到
(x^2+5*y^2)/y^2=m^2/n^2
(x^2-5^y^2)/y^2=k^2/l^2
换句话说就是只要x^2+5*y^2 和x^2-5*y^2的平方根要为整数;
所以我的程序就是去搜索x和y 使得上面的条件成了;我的1000内结果为 41/12
#37
关于方程:5u^2 = 4*s^4+t^4
我又得到两组解
t=892225,s=2493275
和
t=11045611921
s=5822032439
通过它们,我们可以得到第二种情况另外两个解(肯定分子分母都巨大无比)。
可以通过下列方式得到更多5u^2=4*s^4+t^4的解
搜索方程:
25A^4+30A^2*B^2+B^4=W^2
Let P1=B/A
P2=(-2P1+sqrt(25+30*P1^2+P1^4))/(1+P1^2)=D/C
那么P1,P2都是有理数
Let m=B*D,n=A*C
t=m^2-25n^2+10mn
s=m^2-25n^2
就是一个解。
方程25A^4+30A^2*B^2+B^4=W^2
我搜索到三个解:
A=1,B=6,C=1,D=1;
A=6,B=5,C=61,D=185;
A=588,B=1271,C=37,D=61;
其中A=1,B=6,C=1,D=1对应s=11,t=71.
我又得到两组解
t=892225,s=2493275
和
t=11045611921
s=5822032439
通过它们,我们可以得到第二种情况另外两个解(肯定分子分母都巨大无比)。
可以通过下列方式得到更多5u^2=4*s^4+t^4的解
搜索方程:
25A^4+30A^2*B^2+B^4=W^2
Let P1=B/A
P2=(-2P1+sqrt(25+30*P1^2+P1^4))/(1+P1^2)=D/C
那么P1,P2都是有理数
Let m=B*D,n=A*C
t=m^2-25n^2+10mn
s=m^2-25n^2
就是一个解。
方程25A^4+30A^2*B^2+B^4=W^2
我搜索到三个解:
A=1,B=6,C=1,D=1;
A=6,B=5,C=61,D=185;
A=588,B=1271,C=37,D=61;
其中A=1,B=6,C=1,D=1对应s=11,t=71.
#38
呵呵,25A^4+30A^2*B^2+B^4=W^2的下一个解中
B=1562*5283=8252046
再下一个为
B=3344161*113279=378823213919
任取两个平方数u2,v2,分别让m,n取5u2+v2和5u2-v2 (如果是负数取相反数,可以m取和,n取差,也可以m取和,n取差),如果2m^2-n^2 是平方数(或者平方数的相反数),那么
B=mn,A=2*m^2-3mn+n^2
B=1562*5283=8252046
再下一个为
B=3344161*113279=378823213919
任取两个平方数u2,v2,分别让m,n取5u2+v2和5u2-v2 (如果是负数取相反数,可以m取和,n取差,也可以m取和,n取差),如果2m^2-n^2 是平方数(或者平方数的相反数),那么
B=mn,A=2*m^2-3mn+n^2
#39
方程25A^4+30A^2*B^2+B^4=W^2的解也可以通过递归来计算。
设 (A,B)是上面的一组解,那么:
记s=5A^2-B^2,t=5A^2+B^2
B'=st
A'=sqrt((s^4-3*s^2*t^2+2*t^4)/5)
就是一组解,如A=1,B=6,可得,A'=588,B'=-1271
下面给出方程的前几个解:
A=1,B=6
A=588,B=-1271
A=7066924182696,B=378823213919
A=1339292487821310144844876208030955730130705238172848,B=62353608713680834676537482331752184610397022133175679
A=653847017052681596985858386354972304592004671926407283004142638688138544810228375879362674859384259102583909848347601781674930175841262966955807108200483322024747022729914713948712732290509718978030014591911584,B=-15116249878927084323082375162074881670718984563501618492997336351956894910033543773404638070549516482211174394094412444035050568807695310556722764118509673769328904184606696785693209474773808545042791608377633281
A=4642102823897693968460880211990481491126387340980503652403394793038199360975204789102998089937767391669497789716199275804782225247129170511061073666415512302917558851804345309213156589028523818499010516153110429962372759836269753415362990392343912287388310595878272971393481519848494416249430528956335963879011088620487075868391470709309530504555454394533473595643680508732063330558506185278015420706803630031879900826374428372969236088723501865519113349502887061629838682028723727496983670355565514459845529671847440509267954219855800161884600307837862521859132037659764592001328267359941993377942108539506027174786281275282368759939289085775132058996906116958661975415731806988624526139864471175664697141115466536614068698117406130915496629582710338362777986947371533584452248934365105221630774112465836888546887782034074363371470875489471808,B=-52208142508226584564173148081824184622796492490012921884102603428039998024667098090942066752817503946085834495109712498509322180691350504118697014043994522006040322430484406865169840472033747250005425611840359802659706692164411537879783652943136669530328945171621517833179116752493788903569544954617184781753660345476698103495495235837073175550434239219078247949237285297580430236298658725601259776113575227210593124620210692737806075248751026499229004496981617259782653170634944495728332537161881089178751267100111650123518456044586524835170101071553519531832651134630332923118289908189925873653359747207200457072345083593516713324599128689711857171370066198469952662623619945603909198350050446768272429011931324212842579192401311217845195311534508896184529021138162592392309767443140901198829889474726851089155904307179846768135109890442373121
对应的perl程序:
#!/usr/bin/perl
use bigint;
$A=1;
$B=6;
for($i=0;$i<6;$i++){
print "A=".$A.",B=".$B."\n";
$s=5*$A*$A-$B*$B;
$t=5*$A*$A+$B*$B;
$B=$s*$t;
$u=$s*$s*$s*$s-3*$s*$s*$t*$t+2*$t*$t*$t*$t;
$u=$u/5;
$A=sqrt($u);
$s=$A * $A;
print "Error\n" unless ($s eq $u);
}
printf "A=".$A.",B=".$B."\n";
设 (A,B)是上面的一组解,那么:
记s=5A^2-B^2,t=5A^2+B^2
B'=st
A'=sqrt((s^4-3*s^2*t^2+2*t^4)/5)
就是一组解,如A=1,B=6,可得,A'=588,B'=-1271
下面给出方程的前几个解:
A=1,B=6
A=588,B=-1271
A=7066924182696,B=378823213919
A=1339292487821310144844876208030955730130705238172848,B=62353608713680834676537482331752184610397022133175679
A=653847017052681596985858386354972304592004671926407283004142638688138544810228375879362674859384259102583909848347601781674930175841262966955807108200483322024747022729914713948712732290509718978030014591911584,B=-15116249878927084323082375162074881670718984563501618492997336351956894910033543773404638070549516482211174394094412444035050568807695310556722764118509673769328904184606696785693209474773808545042791608377633281
A=4642102823897693968460880211990481491126387340980503652403394793038199360975204789102998089937767391669497789716199275804782225247129170511061073666415512302917558851804345309213156589028523818499010516153110429962372759836269753415362990392343912287388310595878272971393481519848494416249430528956335963879011088620487075868391470709309530504555454394533473595643680508732063330558506185278015420706803630031879900826374428372969236088723501865519113349502887061629838682028723727496983670355565514459845529671847440509267954219855800161884600307837862521859132037659764592001328267359941993377942108539506027174786281275282368759939289085775132058996906116958661975415731806988624526139864471175664697141115466536614068698117406130915496629582710338362777986947371533584452248934365105221630774112465836888546887782034074363371470875489471808,B=-52208142508226584564173148081824184622796492490012921884102603428039998024667098090942066752817503946085834495109712498509322180691350504118697014043994522006040322430484406865169840472033747250005425611840359802659706692164411537879783652943136669530328945171621517833179116752493788903569544954617184781753660345476698103495495235837073175550434239219078247949237285297580430236298658725601259776113575227210593124620210692737806075248751026499229004496981617259782653170634944495728332537161881089178751267100111650123518456044586524835170101071553519531832651134630332923118289908189925873653359747207200457072345083593516713324599128689711857171370066198469952662623619945603909198350050446768272429011931324212842579192401311217845195311534508896184529021138162592392309767443140901198829889474726851089155904307179846768135109890442373121
对应的perl程序:
#!/usr/bin/perl
use bigint;
$A=1;
$B=6;
for($i=0;$i<6;$i++){
print "A=".$A.",B=".$B."\n";
$s=5*$A*$A-$B*$B;
$t=5*$A*$A+$B*$B;
$B=$s*$t;
$u=$s*$s*$s*$s-3*$s*$s*$t*$t+2*$t*$t*$t*$t;
$u=$u/5;
$A=sqrt($u);
$s=$A * $A;
print "Error\n" unless ($s eq $u);
}
printf "A=".$A.",B=".$B."\n";
#40
To mathe()
我来说一下“253”
JustLikeTheWind(风) 是个mopper(也就是经常逛www.mop.com的人)
mathe()哥你上www.mop.com不出一个小时就可以找到“253”所表示的含义。
我来说一下“253”
JustLikeTheWind(风) 是个mopper(也就是经常逛www.mop.com的人)
mathe()哥你上www.mop.com不出一个小时就可以找到“253”所表示的含义。
#41
253实乃敬佩、拜服之意。
#42
mathe就不一样,编个算法竟然用的是perl,呵呵,牛啊。
#43
整数就简单了
#44
啊,是perl语言啊,我还纳闷哪,看不懂啊。
mathe老大能不能改成c啊,这里的人估计没有几个能看懂perl语言的^_^
mathe老大能不能改成c啊,这里的人估计没有几个能看懂perl语言的^_^
#45
如果用c语言写上面的代码,太复杂了,主要是c里面不支持任意长度的整数。
(通常c语言提供的整数不超过2^64).
其实上面的perl程序很简单的。
第一行
#!/usr/bin/perl
用处不大,是在Linux下面告诉计算机这个文件是perl脚本。
下一行:
use bigint;
相当于c里面的头文件,告诉计算机,要使用任意精度的超大整数,这样,后面所有的变量
都可以使用任意长度的整数了。
而程序里面我只使用了for循环,通c的语法也是一致的。
唯一区别是在perl里面,所有的变量名称都要以$开头,而且变量使用之前都不需要声明。
函数print用来输出内容到标准输出(就是c中的stdout)
print "Error\n" unless ($s eq $u);
其实就是c中 if( $s != $u){
printf("Error\n");
}
eq 是表示相等。
(通常c语言提供的整数不超过2^64).
其实上面的perl程序很简单的。
第一行
#!/usr/bin/perl
用处不大,是在Linux下面告诉计算机这个文件是perl脚本。
下一行:
use bigint;
相当于c里面的头文件,告诉计算机,要使用任意精度的超大整数,这样,后面所有的变量
都可以使用任意长度的整数了。
而程序里面我只使用了for循环,通c的语法也是一致的。
唯一区别是在perl里面,所有的变量名称都要以$开头,而且变量使用之前都不需要声明。
函数print用来输出内容到标准输出(就是c中的stdout)
print "Error\n" unless ($s eq $u);
其实就是c中 if( $s != $u){
printf("Error\n");
}
eq 是表示相等。
#46
真的很佩服 mathe() ,以后得多跟你学学分析问题的方法,也希望以后有问题能得到各位大侠的指点。
#47
非常感谢各位老大!
#48
mathe是超高手啊,mathe程序对应的cpp版,用cryptlib
#include <cryptlib/integer.h>
#include <iostream>
using namespace std;
using namespace CryptoPP;
/*
#!/usr/bin/perl
use bigint;
$A=1;
$B=6;
for($i=0;$i<6;$i++){
print "A=".$A.",B=".$B."\n";
$s=5*$A*$A-$B*$B;
$t=5*$A*$A+$B*$B;
$B=$s*$t;
$u=$s*$s*$s*$s-3*$s*$s*$t*$t+2*$t*$t*$t*$t;
$u=$u/5;
$A=sqrt($u);
$s=$A * $A;
print "Error\n" unless ($s eq $u);
}
printf "A=".$A.",B=".$B."\n";
*/
int main()
{
Integer A = 1 , B = 6 , s , t , u;
for( int i = 0; i < 6; ++i )
{
cout << "A= " << A << " , B= " << B << endl;
s = 5 * A * A - B * B;
t = 5 * A * A + B * B;
B = s * t;
u = s * s * s * s - 3 * s * s * t * t + 2 * t * t * t * t;
u /= 5;
A = u.SquareRoot();
s = A * A;
if( s != u )
{
cerr << "Error" << endl;
break;
}
}
}
#include <cryptlib/integer.h>
#include <iostream>
using namespace std;
using namespace CryptoPP;
/*
#!/usr/bin/perl
use bigint;
$A=1;
$B=6;
for($i=0;$i<6;$i++){
print "A=".$A.",B=".$B."\n";
$s=5*$A*$A-$B*$B;
$t=5*$A*$A+$B*$B;
$B=$s*$t;
$u=$s*$s*$s*$s-3*$s*$s*$t*$t+2*$t*$t*$t*$t;
$u=$u/5;
$A=sqrt($u);
$s=$A * $A;
print "Error\n" unless ($s eq $u);
}
printf "A=".$A.",B=".$B."\n";
*/
int main()
{
Integer A = 1 , B = 6 , s , t , u;
for( int i = 0; i < 6; ++i )
{
cout << "A= " << A << " , B= " << B << endl;
s = 5 * A * A - B * B;
t = 5 * A * A + B * B;
B = s * t;
u = s * s * s * s - 3 * s * s * t * t + 2 * t * t * t * t;
u /= 5;
A = u.SquareRoot();
s = A * A;
if( s != u )
{
cerr << "Error" << endl;
break;
}
}
}