Pell佩尔方程 x^2-61*y^2=1
来源:互联网 发布:大数据国家工程实验室 编辑:程序博客网 时间:2024/05/16 01:16
有一个特殊的佩尔方程:x^2-61*y^2=1
下面我将编程求解它的最小解
如果直接枚举x和y的话,大约需要10秒
代码:
#include<iostream>using namespace std;int main(){long long x = 2, y = 0, flag = 3;//flag=x*x-61*y*y-1while (flag){if (flag > 0){flag -= 61 * (2 * y + 1);y++;}else{flag += 2 * x + 1;x++;}}cout << x << " " << y << " " << x*x;system("pause>nul");return 0;}
如果先数学求解的话,自然会快一些。
首先,x必定是奇数,y必定是偶数
设x=s*2+1,y=t*2
那么s(s+1)=61t*2
分解:有2种情况
第一种,s=61*a^2,s+1=b^2,那么b^2-61*a^2=1,与x,y是最小解矛盾。
第二种,s=a^2,s+1=61*b^2,那么a^2-61*b^2=-1,化成这种佩尔方程了。
如果这个方程有解的话,原方程也有解,而且这个方程的解比原方程的解小得多。
2个方程是几乎差不多的,代码只需要略略改改就可以了。
代码:
#include<iostream>using namespace std;int main(){long long x = 2, y = 0, flag = 5;while (flag){if (flag > 0){flag -= 61 * (2 * y + 1);y++;}else{flag += 2 * x + 1;x++;}}cout << x*x * 2 + 1;system("pause>nul");return 0;}
这个不需要1秒就可以算完。
最后,附上PDF的截图
1 0
- Pell佩尔方程 x^2-61*y^2=1
- pell方程递推式!!!x^2-dy^2=1
- 关于丢番图方程x^2+y^2=n
- 解方程: x+y=x|y
- Pell Equation (佩尔方程)
- 数学方法,证明:(x&y)+((x^y)>>1)=(x+y)/2
- 关于方程x^2+y^2=n的解的问题
- USTCOJ 1271 方程X+2Y+5Z=N非负整数解计数
- 如何编程证明:当n是整数且n>2时,方程x^n+y^n=z^n无正整数解x,y,z
- 证明题:证明当n是一个整数且n>2时,方程x^n+y^n=z^n无正整数x,y,z的解。
- 不定方程x^2 +y^2 +z^2 =w^2正整数解的结构与表示
- 【c语言】有一个函数: x < 1 --- y = x 1 <= x < 10 --- y = 2 * x - 1 x >= 10 --- y = 3 * x - 11 输
- y = x(x>1) ||y = 2*x-1(1<x<10) ||y = 3*x-11(x>=10)
- matlab 画隐函数图像 画方程图像 形如:(x-3)^2+(y-5)^2=16
- 根据三个点(x1,y1)、(x2,y2)、(x3,y3),确定方程y=aX^2 + bX + c,带入X求得Y
- 解不定方程a*x+b*y=c
- 解不定方程a*x+b*y=c
- 习题 4.6 有一个函数:y=x (x<1) y=2x-1 (1<=x<10) y=3x-11 (x>=10) 写程序,输入x的值,输出y相应的值。
- android中RxJava学习
- 我的31岁生日快乐:聊聊朋友
- php 获取文件的扩展名
- 移动端开发者眼中的前后端分离-H5
- Javascript中this对象的解释
- Pell佩尔方程 x^2-61*y^2=1
- Oracle建立表空间和用户
- SQLite
- JavaScript typeof, null, 和 undefined
- App上传提交到国内第三方应用商店渠道(偏技术篇)
- android 开发中遇到错误及解决办法总结
- char *s和char s[]的区别小结
- 硬币表示
- Windows下 OpenAcs测试平台搭建