Ir para conteúdo
Fórum Script Brasil
  • 0

Implementação de pseudocódigo


PedroC

Pergunta

Boa noite pessoal, estou com problemas para implementar o pseudocódigo abaixo em Python:

FloidWarshall(Madj)

para cada linha i em Madj

para cada coluna j em Madj

se (Madf[j] == 0 && i != j)

Madj[j] == Infinito;

fim

fim

fim

t = numero de linhas de Madj;

Cmin = Madj;

para k igual a 1 até t,

para i igual a 1 até t,

para j igual a 1 até t,

Cmin[j] = min(Cmin[j],Cmin[k]+Cmin[k][j]);

fim

fim

fim

retorna Cmin;

fim

Até agora, implementeu desse jeito, mas o primeiro erro que o drpython acuso é no primeiro if/else:

matriz=[[0,9,0,0,14,15,0],[0,0,23,0,0,0,0,0],[0,0,0,0,2,0,0,19],[0,0,6,0,0,0,0,6],[0,0,0,11,0,0,0,16],[0,0,18,0,30,0,5,0],[0,0,0,0,20,0,0,44],[0,0,0,0,0,0,0,0]]

for i in matriz[j]:

for j in matriz[j]:

if (matriz[j] = 0 and i!=j):

matriz[j] == 2**1000000000000000000000

tamanhoMatriz=len(matriz)

caminhoMinimo = matriz

for k in range(1,(tamanhoMatriz)):

for i in range(1,(tamanhoMatriz)):

for j in range(1,(tamanhoMatriz)):

caminhoMinimo[j] = min(caminhoMinimo[j], caminhoMinimo[k]+caminhoMinimo[k][j])

print caminhoMinimo

Alguém tem idéia de onde está o bug?

Agradeço pela ajuda desde já.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Eis a solução da primeira parte do seu problema:

(O jeito que você estava escrevendo o código não funciona na linha de raciocínio do Python)

matriz = [[0,9,0,0,14,15,0],[0,0,23,0,0,0,0,0],[0,0,0,0,2,0,0,19],[0,0,6,0,0,0,0,6],[0,0,0,11,0,0,0,16],[0,0,18,0,30,0,5,0],[0,0,0,0,20,0,0,44],[0,0,0,0,0,0,0,0]]

i=0
for vetor in matriz:
    j=0
    for elemento in vetor:
        if elemento == 0 and i != j:
            matriz[i][j] = 'I' #O "I" simboliza o seu infinito, só pra efeito teórico mesmo
        j = j + 1
    i = i + 1

#Esse comando abaixo é só pra você conferir que a substituição foi feita corretamente
for vetor in matriz:
    print vetor

Se não entender alguma coisa é só perguntar que eu explico.

Quanto à segunda parte, que você insere 3 "for" com i, j e k, eu não entendi o que você quer. Se você explicar talvez eu consiga achar uma solução.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...