和题解的做法有些不同,不知道为什么,但是能够通过。
首先按题解的做法先将式子除以 \(z^2\)。令 \(\frac{y}{z}=a,\frac{x}{z}=b\)。有:
\[\begin{aligned} \frac{x^2}{z^2}-\frac{xy}{z^2}-\frac{y^2}{z^2}+\frac{y}{z}+1-\frac{x}{z}=0\\ -a^2-ab+b^2+a+1-b=0 \end{aligned} \]题解的人类智慧:令 \(k=\frac{b-1}{a-1}\)。我们容易发现有 \(b=ak-k+1\)。
我们的思路就是用 \(k\) 表示 \(a,b\),显然难度有点大(,但是没有其他做法,所以我们直接把 \(b=ak-k+1\) 代入到上面那个关于 \(a,b\) 的式子中:
\[-a^2-a(ak-k+1)+(ak-k+1)^2+a+1-(ak-k+1)=0\\ -a^2-a^2k+ak-a+a^2k^2+k^2+1-2ak^2+2ak-2k+a+1-ak+k-1=0\\ \]读者可以尝试自行抵消一部分,最后我们把这依托写成一元二次方程的形式,我们有:
\[(k^2-k-1)a^2+(-2k^2+2k)a+(k^2-k+1)=0 \]因为最后和题解有一点不一样,所以这里可能不保证正确性,但是若算的不一样,应该可以用下面一样的方法解这个方程:
令 \(A=k^2-k-1,B=-2k^2+2k,C=k^2-k+1\),有:
\[A+B+C=0 \]令人惊讶,这样的话,上面那个式子有一个 \(a-1\) 的因式,但是先前我们的 \(a-1\) 是分母,所以这里 \(a\not=1\)。我们可以很容易写出另一个因式,为:
\[Aa-C=(k^2-k-1)a-(k^2-k+1) \]OK,那么这个时候就能很容易表示 \(a\) 了,其值为:
\[\frac{k^2-k+1}{k^2-k-1} \]代入我们最开始那个 \(b=ak-k+1\),有:
\[\begin{aligned} b&=\frac{k^3-k^2+k}{k^2-k-1}-\frac{k^3-k^2-k}{k^2-k-1}+\frac{k^2-k-1}{k^2-k-1}\\ &=\frac{k^2+k-1}{k^2-k-1} \end{aligned} \]我们设 \(k\) 的最简分数形式为 \(\frac{p}{q}\),这里直接代入,算是比较简单了:
\[a=\frac{(\frac{p}{q})^2-\frac{p}{q}+1}{(\frac{p}{q})^2-\frac{p}{q}-1}=\frac{p^2-pq+q^2}{p^2-pq-q^2}\\ b=\frac{(\frac{p}{q})^2+\frac{p}{q}-1}{(\frac{p}{q})^2-\frac{p}{q}-1}=\frac{p^2+pq-q^2}{p^2-pq-q^2} \]因为我们定义 \(a=\frac{y}{z},b=\frac{x}{z}\),所以我们可以这样表示 \(x,y,z\):
\[x=t(p^2+pq-q^2),y=t(p^2-pq+q^2),z=t(p^2-pq-q^2) \]其中 \(t\) 为一个有理数,但是 \(\gcd(x,y,z)=1\),所以 \(t=1\)。
因为 \(y\) 的限制,我们可以把 \(p,q\) 的绝对值范围控制在 \(O(\sqrt n)\) 大小的范围内,暴力枚举即可。
但是显然 \(a=1\) 的时候存在解 \(x=y=z=1\) 我们没有算到,加上就行了。
标签:pq,frac,5.9,ak,T2,题解,式子,2k From: https://www.cnblogs.com/xingyuxuan/p/18182950