Программа 2 c. 93 Кирсанов М.Н. Графы в Maple
Матрица расстояний
> | restart: |
> | with(networks):new(G): |
> | addvertex({1,2,3,4,5},G):n:=5: |
> | addedge([{1,2},{2,5},{4,5},{3,5},{4,3}],G): |
> | Диаметр=diameter(G); |
`Диаметр` = 3
> | draw(G); |
> | with(LinearAlgebra): |
> | A:=adjacency(G); |
> | A0:=IdentityMatrix(5): |
> | AllPairs:=Matrix(n,shape=symmetric): |
> | N:=0: |
> | for k while N<>n*(n-1)/2 do |
> | A0:=A0.A: |
> | for i to n do |
> | for j to i-1 do |
> | if AllPairs[i,j]=0 and A0[i,j]<>0 then |
> | AllPairs[i,j]:= k; N:=N+1:end: |
> | od: |
> | od: |
> | od: |
> | S:=AllPairs; |
> | time(); |
> | t1:=time(): |
> | S0:=allpairs(G): |
> | time()-t1; |
0.046
0.
> | A1:=Matrix(5,5,S0): |
> | Equal(A1,S); |
true