Mam problem z alg. Floyd Warshall - nie wiem, czego to wina, ale coś jest źle, bo na wy mam same 0 ...
from numpy import zeros
def FloydWarshall(N, A) :
for k in range (0, N) :
for i in range (0, N) :
for j in range (0, N) :
if A[i][j] > A[i][k] + A[k][j] :
A[i][j] = A[i][k] + A[k][j]
N = int(input("Ilosc wierzcholkow: "))
M = int(input("Ilosc krawedzi: "))
A = zeros((N,N), float)
for i in range (0, M) :
u = int(input("Poczatek (u): "))
v = int(input("Koniec (v): "))
w = float(input("Waga (w): "))
A[u-1][v-1] = w
print (A)
FloydWarshall(N, A)
print (A)
for i in range (0, N) :
for j in range (0, N) :
print(str(i+1) + " -> " + str(j+1) + " dl. " + str(A[i][j]))
Przykładowe dane:
10 17
1 2 13
1 9 33
2 3 27
2 4 1
2 10 8
2 9 9
3 4 10
4 10 11
4 6 2
4 5 3
5 6 9
6 10 666
6 7 66
7 8 333
7 9 33
9 10 3
6 9 15