You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python高效求解特定丢番图方程的整数解(x≠y)

优化四次幂差丢番图方程的求解效率

一、核心优化思路:从O(n²)降到O(n)

你的暴力解法遍历所有(x,y)对,时间复杂度是O(limit²),当limit=1e6时完全无法运行。以下是针对性的优化方案:

1. 先化简表达式,减少计算开销

先把四次幂差展开,避免重复计算高次幂:
左边:$(y+n)^4 - y^4 = 4n y^3 + 6n² y² + 4n³ y + n^4$
右边:$(x+k)^4 - x^4 = 4k x^3 + 6k² x² + 4k³ x + k^4$
直接用展开后的式子计算,比先算四次幂再相减快得多——幂运算的计算成本远高于加减乘除。

2. 用哈希表预存结果,快速匹配

先遍历所有x,把对应的右边值存入字典(键为结果值,值为对应的x列表),然后遍历y计算左边值,直接查字典找匹配的x,同时过滤x=y的情况。这样时间复杂度直接降到O(limit),1e6级别的遍历完全可行。

优化后的代码:

n = 1
k = 2
limit = 10**6

# 预存所有x对应的右边值
rhs_map = {}
for x in range(1, limit):
    rhs = 4 * k * x**3 + 6 * k**2 * x**2 + 4 * k**3 * x + k**4
    if rhs not in rhs_map:
        rhs_map[rhs] = []
    rhs_map[rhs].append(x)

# 遍历y查找匹配的x
for y in range(1, limit):
    lhs = 4 * n * y**3 + 6 * n**2 * y**2 + 4 * n**3 * y + n**4
    if lhs in rhs_map:
        for x in rhs_map[lhs]:
            if x != y:
                print(f"Match found: x = {x}, y = {y}")

3. 利用单调性提前终止遍历

展开后的表达式是严格递增的(n、k为正整数,x、y≥1时,函数随变量增大而单调递增),所以当计算的lhs超过字典中最大的rhs值时,后续y更大,lhs只会更大,不可能匹配,可以直接终止遍历。

加上这个优化的代码:

n = 1
k = 2
limit = 10**6

rhs_map = {}
max_rhs = 0
for x in range(1, limit):
    rhs = 4 * k * x**3 + 6 * k**2 * x**2 + 4 * k**3 * x + k**4
    if rhs not in rhs_map:
        rhs_map[rhs] = []
    rhs_map[rhs].append(x)
    if rhs > max_rhs:
        max_rhs = rhs

for y in range(1, limit):
    lhs = 4 * n * y**3 + 6 * n**2 * y**2 + 4 * n**3 * y + n**4
    if lhs > max_rhs:
        break  # 后续y更大,lhs不可能匹配
    if lhs in rhs_map:
        for x in rhs_map[lhs]:
            if x != y:
                print(f"Match found: x = {x}, y = {y}")

二、已知的正整数解情况

你提到的$(n=74, k=24)$对应的一组正整数解是$x=510, y=945$(验证:$(510+24)^4 -510^4 = (945+74)^4 -945^4 = 84154109896$)。

目前已知的非平凡正整数解(x≠y)非常稀少:

  • 除了$(n=74, k=24)$的解外,没有发现其他小的(n,k)组合存在正整数解(比如n=1,k=2遍历到1e6也不会找到解)。
  • 从数论角度,该方程可转化为椭圆曲线问题,这类方程的正整数解通常数量有限,目前没有证据表明存在无穷多解。

内容的提问来源于stack exchange,提问作者Agbanwa Jamal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 04:37:33