麻烦麻烦,感谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
pell方程 x²-2y²=-1(y<=35000)的所有正整数解
- 提问者网友:玫瑰园
- 2021-05-05 08:22
- 五星知识达人网友:英雄的欲望
- 2021-05-05 08:34
这个其实是一个pell方程,可以用数论里面的知识来求解!但是对于你所给的范围,可以直接利用枚举来求解!总共有7组解
x=1 y=1
x=7 y=5
x=41 y=29
x=239 y=169
x=1393 y=985
x=8119 y=5741
x=47321 y=33461
可以利用C语言来求解
#include <stdlib.h>
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
int main(int argc, char** argv)
{
//x^2-2*y^2=-1 y<=35000;
long long x,y,i,temp,temp1,temp2;
// 如果用的是Vc的话,把long long 换成__int64,输出用%I64d代替
int num=0;
for(y=1;y<=35000;y++)
{
temp=2*y*y;
temp-=1;
x=(long long)(sqrt(double(temp)));
//printf("%lld %lld\n",x,y);
if(x*x==temp)
{
num++;
printf("x=%lld y=%lld\n",x,y);
}
}
printf("%d\n",num);
return (EXIT_SUCCESS);
}
看你这个数数学实验的问题,一般还是用matlab写吧,其实也是一样的,改一下就可以了,代码如下:
num=0;
for y=1:35000
temp=2*y*y-1;
temp1=sqrt(temp);
x=floor(temp1);
if x*x==2*y*y-1
num=num+1;
x,y
end;
end;
num
参考资料: http://zhidao.baidu.com/question/152438519.html?si=2