Skip to main content
502 words3 min

数学:分式钓鱼题

Summary

求正整数 a、b、c 使 a 除以 b+c 加 b 除以 a+c 加 c 除以 a+b 等于 4。看似初等,化简后得到一个三元三次齐次方程,归一化为一条亏格 1 的三次曲线,进而双有理等价为椭圆曲线。由曲线上的有理点可反推 a 比 b 比 c,但需沿无穷阶生成元反复做倍点运算,才能落入三者同时为正的区域,最终最小的正整数解长达八十余位。

一道看似初等、实则需要椭圆曲线才能求解的分式钓鱼题。

参考资料​

题目​

求正整数 a,b,ca,b,c,使得:

ab+c+ba+c+ca+b=4\frac{a}{b+c}+\frac{b}{a+c}+\frac{c}{a+b}=4

化简​

设 s=a+b+cs=a+b+c,p=ab+bc+cap=ab+bc+ca,q=abcq=abc。

由 a+b=s−ca+b=s-c,a+c=s−ba+c=s-b,b+c=s−ab+c=s-a,得公共分母:

(a+b)(b+c)(c+a)=(s−a)(s−b)(s−c)=sp−q(a+b)(b+c)(c+a)=(s-a)(s-b)(s-c)=sp-q

原式两边同乘公共分母:

a(s−b)(s−c)+b(s−a)(s−c)+c(s−a)(s−b)=4(sp−q)a(s-b)(s-c)+b(s-a)(s-c)+c(s-a)(s-b)=4(sp-q)

展开左边,利用 ∑a=s\sum a=s,∑a(b+c)=2p\sum a(b+c)=2p,∑cycabc=3q\sum_{\text{cyc}}abc=3q:

∑cyca(s−b)(s−c)=s3−2sp+3q\sum_{\text{cyc}}a(s-b)(s-c)=s^3-2sp+3q

代入并整理:

(a+b+c)3−6(a+b+c)(ab+bc+ca)+7abc=0(a+b+c)^3-6(a+b+c)(ab+bc+ca)+7abc=0

这是一个三元三次齐次方程。

缩放​

原方程齐次,若 (a,b,c)(a,b,c) 是解,则任意正实数 kk 倍 (ka,kb,kc)(ka,kb,kc) 也是解。

因此只需先求正有理比例 (a:b:c)(a:b:c),再通分放大为正整数。

令 A=asA=\frac{a}{s},B=bsB=\frac{b}{s},C=csC=\frac{c}{s},则 A+B+C=1A+B+C=1,原方程化为:

A1−A+B1−B+C1−C=4\frac{A}{1-A}+\frac{B}{1-B}+\frac{C}{1-C}=4

这是一条亏格 11 的三次曲线,只要存在一个有理点,就可以双有理等价为一条椭圆曲线。

椭圆曲线​

Bremner 与 Macleod 在《An unusual cubic representation problem》中给出了更一般方程:

ab+c+bc+a+ca+b=N\frac{a}{b+c}+\frac{b}{c+a}+\frac{c}{a+b}=N

对应的椭圆曲线模型:

EN:y2=x3+(4N2+12N−3)x2+32(N+3)xE_N:y^2=x^3+(4N^2+12N-3)x^2+32(N+3)x

代入 N=4N=4:

E4:y2=x3+109x2+224xE_4:y^2=x^3+109x^2+224x

由 E4E_4 上的有理点 (x,y)(x,y) 可反推 (a:b:c)(a:b:c):

as=56−x+y14(4−x),bs=56−x−y14(4−x),cs=−28−6x7(4−x)\frac{a}{s}=\frac{56-x+y}{14(4-x)},\frac{b}{s}=\frac{56-x-y}{14(4-x)},\frac{c}{s}=\frac{-28-6x}{7(4-x)}

只需找到让三个值同时为正有理数的 (x,y)(x,y)。

求解​

最小正解对应的有理点必须沿着 E4(Q)E_4(\mathbb{Q}) 的无穷阶生成元做多次倍点运算才能落入正区域,每次倍点的位数大致翻倍。

通分放大后,得到一组最小正整数解:

a=154476802108746166441951315019919837485664325669565431700026634898253202035277999b=4373612677928697257861252602371390152816537558161613618621437993378423467772036c=36875131794129999827197811565225474825492979968971970996283137471637224634055579\begin{aligned} a & =154476802108746166441951315019919837485664325669565431700026634898253202035277999 \\ b & =4373612677928697257861252602371390152816537558161613618621437993378423467772036 \\ c & =36875131794129999827197811565225474825492979968971970996283137471637224634055579 \end{aligned}

验证​

代入化简得到的等价条件:

(a+b+c)3−6(a+b+c)(ab+bc+ca)+7abc=0(a+b+c)^3-6(a+b+c)(ab+bc+ca)+7abc=0
301 Bpython
a=154476802108746166441951315019919837485664325669565431700026634898253202035277999
b=4373612677928697257861252602371390152816537558161613618621437993378423467772036
c=36875131794129999827197811565225474825492979968971970996283137471637224634055579
assert (a+b+c)**3-6*(a+b+c)*(a*b+b*c+c*a)+7*a*b*c==0