Python算法设计 - 拓展欧几里得算法

目录

    • 一、拓展欧几里得算法
    • 二、Python算法实现
    • 三、作者Info

一、拓展欧几里得算法

扩展欧几里德算法是数论中最经典的算法之一,其目的用来解决不定方程。用来在已知a, b求解一组x,y,使它们满足贝祖等式:

ax+by = GCD(a, b)

什么是不定方程?
不定方程(丢番图方程)是指未知数的个数多于方程个数,且未知数受到某些限制(如要求是有理数、整数或正整数等)的方程或方程组。

二、Python算法实现


def gld(x, y):
    u0, v0 = 1, 0
    u1, v1 = 0, 1
    while y:
        q = x // y               #取整
        u0, u1 = u1, u0 - q * u1
        v0, v1 = v1, v0 - q * v1
        x, y = y, x % y
    print(x, u0, v0)

gld(2*3*7*9*11, 6*12*13)

输出结果
Python算法设计 - 拓展欧几里得算法_第1张图片

三、作者Info

Author:小鸿的摸鱼日常,Goal:让编程更有趣!

专注于算法、爬虫,游戏开发,数据分析、自然语言处理,AI等,期待你的关注,让我们一起成长、一起Coding!

版权说明:本文禁止抄袭、转载,侵权必究!

你可能感兴趣的:(python算法设计,算法,python)