跳到主要内容
502 词数3 分钟

数学:分式钓鱼题

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

参考资料

题目

求正整数 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+cp=ab+bc+cap=ab+bc+caq=abcq=abc

a+b=sca+b=s-ca+c=sba+c=s-bb+c=sab+c=s-a,得公共分母:

(a+b)(b+c)(c+a)=(sa)(sb)(sc)=spq(a+b)(b+c)(c+a)=(s-a)(s-b)(s-c)=sp-q

原式两边同乘公共分母:

a(sb)(sc)+b(sa)(sc)+c(sa)(sb)=4(spq)a(s-b)(s-c)+b(s-a)(s-c)+c(s-a)(s-b)=4(sp-q)

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

cyca(sb)(sc)=s32sp+3q\sum_{\text{cyc}}a(s-b)(s-c)=s^3-2sp+3q

代入并整理:

(a+b+c)36(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,原方程化为:

A1A+B1B+C1C=4\frac{A}{1-A}+\frac{B}{1-B}+\frac{C}{1-C}=4

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

椭圆曲线

BremnerMacleod 在《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+12N3)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=56x+y14(4x),bs=56xy14(4x),cs=286x7(4x)\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)36(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