Mbpp/160

❌ 均未通过 Base: FAIL Plus: FAIL
测试评估
指标结果
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]