Finish euclide algo
This commit is contained in:
parent
317939a471
commit
a64106f262
1 changed files with 27 additions and 10 deletions
37
algebre-non-lineaire/euclide_etendu.py
Normal file → Executable file
37
algebre-non-lineaire/euclide_etendu.py
Normal file → Executable file
|
@ -7,17 +7,34 @@ Calcule le PGCD de deux nombres et trouve les coefficients de Bezout.
|
|||
|
||||
import sys
|
||||
|
||||
assert len(sys.argv) == 3
|
||||
a = int(sys.argv[1])
|
||||
b = int(sys.argv[2])
|
||||
|
||||
print("r u v q")
|
||||
def main():
|
||||
assert len(sys.argv) == 3
|
||||
a = int(sys.argv[1])
|
||||
b = int(sys.argv[2])
|
||||
|
||||
# Initialisation
|
||||
r = [a, b]
|
||||
u = [1, 0]
|
||||
v = [0, 1]
|
||||
q = [False, a // b]
|
||||
r = ["r", a, b]
|
||||
u = ["u", 1, 0]
|
||||
v = ["v", 0, 1]
|
||||
q = ["q", "", a // b]
|
||||
|
||||
# Séquence
|
||||
r.append(r[-2] % r[-1])
|
||||
while True:
|
||||
r.append(r[-2] % r[-1])
|
||||
u.append(u[-2] - (q[-1] * u[-1]))
|
||||
v.append(v[-2] - (q[-1] * v[-1]))
|
||||
if r[-1] == 0:
|
||||
q.append("")
|
||||
break
|
||||
q.append(r[-2] // r[-1])
|
||||
|
||||
print_table(r, u, v, q)
|
||||
|
||||
def print_table(r, u, v, q):
|
||||
"""Représentation de l'algorithme"""
|
||||
for i in range(len(r)):
|
||||
print(f"{r[i]:^5} {u[i]:^5} {v[i]:^5} {q[i]:^5}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
Loading…
Reference in a new issue