0404 交错椭圆
* * * *
拉格朗日计划
* * * *
交错椭圆

设$E_a$是$x^2+4y^2=4a^2$所表示的椭圆,$E_a'$是将$E_a$绕原点逆时针旋转某个$\theta$角所得的图形,其中$\theta$在0到90度之间。

设b是两椭圆交点中离原点较近的两个交点到原点的距离,c是另外两个较远的交点到原点的距离。



若a, b, c均为正整数,就称$(a,b,c)$为典范椭圆三元组,例如,$(209, 247, 286)$就是一典范椭圆三元组。

记$C(N)$为所有满足$a\le N$的典范椭圆三元组的总数。

可以验证$C(10^3)=7, C(10^4)=106, C(10^6)=11845$。

求$C(10^{17})$。

本题难度:



解答

先写出椭圆的坐标方程 $$r=\frac{2a}{\sqrt{4\cos^2\theta+\sin^2\theta}}.$$ 注意到b和c对应的幅角相差90度,因此若$r=b$时的角度为$\theta_b$,那么有 $$b=\frac{2a}{\sqrt{4\cos^2\theta_b+\sin^2\theta_b}}, \quad c=\frac{2a}{\sqrt{4\sin^2\theta_b+\cos^2\theta_b}}.$$ 两者联立即可得 $$\frac{2a}{b}+\frac{2a}{c}=5(\cos^2\theta_b+\sin^2\theta_b)=5,$$ 亦即 $$\frac{b^2+c^2}{b^2c^2}=\frac{5}{4a^2}.$$ 令$d=\gcd(b,c), x=b/d, y=c/d$代入就有 $$\frac{\frac{x^2+y^2}{d^2}}{x^2y^2}=\frac{5}{4a^2}.$$ 两侧都是既约分数,从而 $$x^2+y^2=5d^2, \quad a=xy/2.$$ 因此只需确定$x^2+y^2=5d^2$的整数解,再筛出其中满足$xy$为偶数的解即可。

此类二次曲线的整数解的解法已在例如第257题中展示过了,它们都具有与勾股数的欧几里得公式类似的生成公式,此处不再赘述。

最终结果是$1199215615081353$。

注:因用到math.gcd函数,以下代码为Python 3,且代码中打印了进度信息。

import math

target=10**17
s=0
bound=35566
tick=356

for m in range(2,bound):
    for n in range(m//2+1,m):
        if math.gcd(n,m)==(m+n)%2==1:
            x,y=2*m*n+2*m*m-2*n*n,4*m*n-m*m+n*n
            if x%5==y%5==0:
                x,y=x//5,y//5
            s+=(2*target)//(x*y) 
    if m%tick==0:
        print(m//tick,"percent completed")

print(s)