Программа 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); |