转跳到内容

【复活】数学算法挑战 —— 和上次完全一样的题目(有奖励)~


只显示该作者

只有该作者的内容显示中。 返回到主题

推荐贴

发布于

给一个等号右边给任意值的通用解法吧:

x/y + y/z + z/x = n
Step 1:
换元u=x/z,v=y/z,得
u/v + v + 1/u = n
Step 2:
换元X=-u, Y=uv,得
Y^2 + nXY + Y = X^3
即(a_1,a_2,a_3,a_4,a_6) = (n,0,1,0,0)的椭圆曲线
Step 3:
通过查表(例如LMFDB)或SageMath等计算工具得到椭圆曲线的rank,若rank=0,则很可能无解(用有限阶有理点推原方程的解很可能是错误的)。
若rank至少为1,则可以找到一个无穷阶的有理点,即可由此这个点推算原方程的整数解。
以下是求解的SageMath代码:

剧透

n = 92
E = EllipticCurve(QQ, [n, 0, 1, 0, 0])

E.two_descent(second_limit=15, verbose=True)
rank = E.rank()
print(f"EC rank = {rank}")

if rank < 1:
    print("Solve Failed: No inf-order points")
    exit()

generators = E.gens()
P = generators[0]
print(f"rational point P = {P}, order = {P.order()}")

X, Y = P.xy()
u = -X
if u == 0:
    print("Solve Failed: invalid rational point (X=0)")
    exit()

v = Y / u
den_u = u.denominator()
den_v = v.denominator()
z = den_u * den_v
x = u * z
y = v * z
g = gcd([x, y, z])
if g != 1 and g != 0:
    x //= g
    y //= g
    z //= g
print(f"Integer solution:")
print(f"x = {x}")
print(f"y = {y}")
print(f"z = {z}")

if x == 0 or y == 0 or z == 0:
    print("Check Failed: Invalid solution (Zero value)")
else:
    left = x*x*z + y*y*x + z*z*y
    right = n*x*y*z
    
    if left == right:
        print("Check Pass: the solution is correct")
        print(f"Left  = {left}")
        print(f"Right = {right}")
    else:
        print("Check Failed: invalid solution (Not equal)")
        print(f"Left  = {left}")
        print(f"Right = {right}")

然后是输出的结果:

剧透

Working with minimal curve [0,1,1,-1492439,701269845] via [u,r,s,t] = [1,-705,-46,32430]
Basic pair: I=71637088, J=-1212653937584
disc=5382104832
2-adic index bound = 2
By Lemma 5.1(a), 2-adic index = 1
2-adic index = 1
One (I,J) pair
Looking for quartics with I = 71637088, J = -1212653937584
Looking for Type 2 quartics:
Trying positive a from 1 up to 2821 (square a first...)
(1,0,-4232,4,4477272)   --trivial
Trying positive a from 1 up to 2821 (...then non-square a)
(277,176,-4190,-1340,16057)     --nontrivial...locally soluble...(x:y:z) = (-1891632 : 35661385544981 : 828271)
Point = [31972627018996679641497576950100026575573575:-18401847671127799092651220843820496649836:45351811426345621650009333682925120228141]
        height = 61.92236706
Rank of B=im(eps) increases to 1
Finished looking for Type 2 quartics.
Looking for Type 1 quartics:
Trying positive a from 1 up to 2821 (square a first...)
Trying positive a from 1 up to 2821 (...then non-square a)
Finished looking for Type 1 quartics.
Mordell rank contribution from B=im(eps) = 1
Selmer  rank contribution from B=im(eps) = 1
Sha     rank contribution from B=im(eps) = 0
Mordell rank contribution from A=ker(eps) = 0
Selmer  rank contribution from A=ker(eps) = 0
Sha     rank contribution from A=ker(eps) = 0
Searching for points (bound = 8)...done:
  found points which generate a subgroup of rank 0
  and regulator 1
Processing points found during 2-descent...done:
2-descent increases rank to 1,   now regulator = 61.92236706
Saturating (with bound = -1)...done:
  points were already saturated.
EC rank = 1
rational point P = (-11217639776756321041004430/1271734418987779814374290361 : -165129881198178499588183393974421656/45351811426345621650009333682925120228141 : 1), order = +Infinity
Integer solution:
x = 229365321791393105114775911058660762150
y = -10733680363511342830998605670315357876
z = 26002954279983814794511196680447493149805
Check Pass: the solution is correct
Left  = -5889615387302719627439057247103422259423225512549510026550109437132523984698081635906203006624869363617153515750404000
Right = -5889615387302719627439057247103422259423225512549510026550109437132523984698081635906203006624869363617153515750404000

和楼上给出的应该是同一组结果,只是轮换对称并乘了个-1

注:我在以上求解过程中尝试使用了Gemini、Grok和豆包(给了一定的提示),但没有一个完全做对的,Gemini和豆包都给出了无解的伪证,Gemini思路对了,但注意力不集中,换元时没有注意到正确的变换,导致后面全错,找了个错误的曲线以为rank=0无解。豆包则是用初等数论给出了一个伪证,看起来似乎像模像样,但实际上错误很严重,推理到后面就不记得自己在前面假设的条件了。Grok则不知道为什么一直沉迷于写程序穷举,给它提示后也只是换一种思路再写代码再穷举,然后说在它尝试的范围内找不到解。我把Gemini的伪证给Grok看,但Grok找不出真正的错误点。把豆包的伪证给Gemini看,倒是很快就发现问题了。从数学推理能力来看,Gemini在这几个里应该算是遥遥领先了。

×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款