佩尔方程

一、背景介绍

佩尔方程,是一种不定二次方程。Pell方程,古希腊和印度的数学家对此类方程的研究做了最早的贡献,由费马首先进行了深入研究,拉格朗日给出了解决方案,但后此类方程来却被欧拉误记为佩尔提出,并写入他的著作中。后人多称佩尔方程。

二、方程求解
设d为正整数,佩尔方程形式为: x 2 − d y 2 = 1 x^2 - dy^2 = 1 x2dy2=1

  • 1)如果d为平方数,则方程变为了(x-√dy)(x+√dy) = 1,此时只有x = 1或-1,y=0,这两组特定解。
  • 2)当d不为平方数时,方程有无穷多组整数解。

所以得到解的递推式:
x n = x n − 1 x 1 + d y 1 y n − 1 x_n = x_n-_1x_1 + dy_1y_n-_1 xn=xn1x1+dy1yn1

y n = x 1 y n − 1 + x n − 1 y 1 y_n = x_1y_n-_1 + x_n-_1y_1 yn=x1yn1+xn1y1

可以用矩阵快速幂求解:
在这里插入图片描述
暴力求解代码:

void search(int d,int &x,int &y) //x^2 - d*(y^2) = 1
{
	y=1;
	while(1)
	{
		x=(long long )sqrt(d*y*y+1);
		if(x*x-d*y*y==1)
			break;
		y++;
	}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值