Программа 18 Кирсанов М.Н,
Графы в Maple
Распаковка десятичного кода
| > | restart:with(networks): |
Десятичный код
| > | KOD10:=61858: |
| > | Z:=convert(KOD10,base,2): |
| > | n2:=nops(Z): |
Двоичный код
| > | Z:=seq(Z[n2-i+1],i=1..n2); |
Z := 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0
| > | E1:={}: # Множество ребер |
| > | v1:=1: v2:=1: |
| > | F:=[1]: # Переменный список вершин |
| > | for i to n2 do |
| > | if Z[i]=1 then |
| > | v2:=v2+1: |
| > | F:=[op(F),v2]; |
| > | E1:=E1 union {{v1,v2}}; |
| > | v1:=v2: |
| > | fi; |
| > | if Z[i]=0 then |
| > | F:=F[1..-2]:# Стираем последний элемент |
| > | v1:=F[-1]; # Последний элемент списка F |
| > | fi; |
| > | od; |
| > | E1; |
{{1, 2}, {1, 9}, {2, 3}, {2, 6}, {3, 4}, {4, 5}, {6, 7}, {6, 8}}
| > | new(G): n:=n2/2+1: V:={$1..n}: |
| > | addvertex(V,G): |
| > | addedge(E1,G): |
| > | draw(G); |