#Algoritmus pochazi z materialu k prednaskam doc. Habaly, ktereho mame na diskretni matematiku. Bylo to jenom o neco tezsi odladit nez 1. domaci ukol z proceduralniho programovani, a to C znam uz 2 roky. Ten Python asi nebude tak spatnej.
print("")
print("NSD a Bezout 2 celych cisel.")
print("")
r=[]
r.append(int(input("a := ")))
r.append(int(input("b := ")))
k=0
x=[1, 0] #jednotkova matice
y=[0, 1]
q=[]
while r[-1] != 0:
k += 1
q.append((r[k-1])//r[k]) #q je o 1 pozadu
r.append(r[k-1]%r[k]) #nazorne modulo
x.append(x[k-1]-q[-1]*x[k])
y.append(y[k-1]-q[-1]*y[k])
print("")
#skoda, ze python 3 odmita implicitni prevody
print("NSD("+str(r[0])+", "+str(r[1])+") = "+str(r[k])+" = "+str(x[k])+" * "+str(r[0])+" + "+str(y[k])+" * "+str(r[1]))
print("")
if r[k] == 1:
print("Cisla jsou nesoudelna.")
print("")
print("Koncovy stav:") #mezivypocty
print("q = "+str(q))
print("r = "+str(r))
print("x = "+str(x))
print("y = "+str(y))
print("k = "+str(k))
print("")
print("")
print("NSD a Bezout 2 celych cisel.")
print("")
r=[]
r.append(int(input("a := ")))
r.append(int(input("b := ")))
k=0
x=[1, 0] #jednotkova matice
y=[0, 1]
q=[]
while r[-1] != 0:
k += 1
q.append((r[k-1])//r[k]) #q je o 1 pozadu
r.append(r[k-1]%r[k]) #nazorne modulo
x.append(x[k-1]-q[-1]*x[k])
y.append(y[k-1]-q[-1]*y[k])
print("")
#skoda, ze python 3 odmita implicitni prevody
print("NSD("+str(r[0])+", "+str(r[1])+") = "+str(r[k])+" = "+str(x[k])+" * "+str(r[0])+" + "+str(y[k])+" * "+str(r[1]))
print("")
if r[k] == 1:
print("Cisla jsou nesoudelna.")
print("")
print("Koncovy stav:") #mezivypocty
print("q = "+str(q))
print("r = "+str(r))
print("x = "+str(x))
print("y = "+str(y))
print("k = "+str(k))
print("")
No comments:
Post a Comment
Barely anyone comments, so I don't moderate. Free advertising, I guess.