Boa noite ,galera.Eu tenho que criar uma tabela exibindo os valores do Resto,Quociente, X e Y
(para esclarecer ---- O algoritmo Euclidiano Estendido me fornece os valores de X e Y que tornam a igualdade
a.X + bY = mdc(a,b) , onde a e b são os valores digitados pelo usuário )
Eu fiz o seguinte:criei 3 pares de variáveis ( e [v] para os valores de X(j-2) e Y(j-2) {X e Y de duas linhas anteriores a atual},respectivamente. e [t]
para os valores de X(j-1) e Y(j-1) {X e Y de uma linha anterior a atual},respectivamente. E,por último,[m] e [h] para os valores de Xj e Yj {X e Y da linha atual},respectivamente).
Na parte do while(R !=0): ... depois do final do primeiro ciclo,eu começo a ter erro na distribuição das váriáveis.
while (R != 0):
a = b
b = R
R = a % b
Q = a // b
u = m
v = h
m = s - m*Q
h = t - h*Q
if (R == 0):
print R,Q,"-","-"
else:
print R,Q,m,h
a = b
b = R
R = a % b
Q = a // b
s = u
t = v
m = u - m*Q
h = t - h*Q
s = m
t = h
if (R == 0):
print R,Q,"-","-"
else:
print R,Q,m,h
print "---"
Pergunta
gadnlino
Boa noite ,galera.Eu tenho que criar uma tabela exibindo os valores do Resto,Quociente, X e Y
(para esclarecer ---- O algoritmo Euclidiano Estendido me fornece os valores de X e Y que tornam a igualdade
a.X + bY = mdc(a,b) , onde a e b são os valores digitados pelo usuário )
Eu fiz o seguinte:criei 3 pares de variáveis ( e [v] para os valores de X(j-2) e Y(j-2) {X e Y de duas linhas anteriores a atual},respectivamente. e [t]
para os valores de X(j-1) e Y(j-1) {X e Y de uma linha anterior a atual},respectivamente. E,por último,[m] e [h] para os valores de Xj e Yj {X e Y da linha atual},respectivamente).
Na parte do while(R !=0): ... depois do final do primeiro ciclo,eu começo a ter erro na distribuição das váriáveis.
while (R != 0):
a = b
b = R
R = a % b
Q = a // b
u = m
v = h
m = s - m*Q
h = t - h*Q
if (R == 0):
print R,Q,"-","-"
else:
print R,Q,m,h
a = b
b = R
R = a % b
Q = a // b
s = u
t = v
m = u - m*Q
h = t - h*Q
s = m
t = h
if (R == 0):
print R,Q,"-","-"
else:
print R,Q,m,h
print "---"
Valores de entrada : a = 294 b = 108
EXEMPLO DE SAÍDA :
78 2 1 -2
30 1 -1 3
18 2 3 -8
12 1 0 0
6 1 3 -8
0 2 - -
COMO DEVERIA SER :
78 2 1 -2
30 1 -1 3
18 2 3 -8
12 1 -4 11
6 1 7 -19 mdc(a,b)= mdc(294,108) = 6
0 2 - -
Tem algum jeito melhor de fazer esse algoritmo? Com vetores,talvez?
Desde já,obrigado!
Editado por gadnlinoLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.