测试评估
| 指标 | 结果 |
|---|---|
| Base 测试 | FAIL |
| Plus 测试 | FAIL |
| 代码长度 | 1090 字符 |
模型生成的代码 (1090 字符)
def find_solution(a, b, n):
"""
Returns integers x and y such that a*x + b*y = n, or None if no solution exists.
This uses the extended Euclidean algorithm to find a particular solution
to the linear Diophantine equation.
Parameters
----------
a : int
b : int
n : int
Returns
-------
tuple (int, int) or None
"""
# Extended Euclidean algorithm
def extended_gcd(a, b):
if b == 0:
return a, 1, 0
g, x1, y1 = extended_gcd(b, a % b)
x = y1
y = x1 - (a // b) * y1
return g, x, y
# Handle edge cases where a or b is zero
if a == 0 and b == 0:
if n == 0:
return (0, 0) # any solution works, return trivial one
return None
if a == 0:
if n % b == 0:
return (0, n // b)
return None
if b == 0:
if n % a == 0:
return (n // a, 0)
return None
g, x0, y0 = extended_gcd(a, b)
if n % g != 0:
return None
factor = n // g
return (x0 * factor, y0 * factor)
Base 失败测试用例
[2, 3, 7]
Plus 失败测试用例
[25, 10, 500]