[学之前我以为很简单的自闭数论]——Pell方程的求解 (咕咕咕)

前言

本来要讲 B S G S BSGS BSGS的,老师拉题发现题目都和这个鬼东西有关,于是临时决定讲这个鬼东西。

老师:今天晚上我们讲Pell方程的求解
某zz:那不就是一个贼水的不定方程吗?
……(讲完后)
某zz:抱歉我错了……

所以讲了一晚上加一上午,我看我是完全不懂哦~。所以还是来这里重新学吧………………

Pell方程

定义

佩尔方程
简单来说,就是对形如 x 2 − d y 2 = 1 x^2-dy^2=1 x2dy2=1
的不定方程进行求解,其中 x , y x,y x,y均为正整数。

首先我们知道, d d d一定是一个不为完全平方数的正整数,否则 ( x , y ) (x,y) (x,y)为有限个,反之有无限个(可以证明,在上面的百度百科里有证明)。

求解

暴力求解

首先,我们可以有一种暴力的做法,即:从 1 1 1开始枚举 x x x,那么 x x x变为常数, y y y 满足 y = ( x 2 − 1 ) / d y=\sqrt{(x^2-1)/d} y=(x21)/d 为正整数,那么 ( x 2 − 1 ) / d (x^2-1)/d (x21)/d为完全平方数。而暴力的时间复杂度为 O ( 玄 学 ) O(玄学) O(),俺也不会算,料想是可以算的吧(并不确信)。所以并没有用这种方式做题。给一个代码吧。

	while (x ++)
	{
   
		if ((x * x - 1) % d)
			continue;
		LL yf = (x * x - 1) / d;
		if (sqrt( yf ) * sqrt( yf ) != yf)
			continue;
		y = sqrt( yf );
		break;
	}

连分数求解

暴力求解是不可靠的,所以我们需要使用连分数求解法。

连分数一般形式为 a 1 + 1 a 2 + 1 a 3 + 1 a 4 + . . . a1+\frac{1}{a2+\frac{1}{a3+\frac{1}{a4+...}}} a1+a2+a3+a4+...111<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值