Мне нужно оживить путь Эйлера. У меня есть код для случайного блуждания по любому графику, но я не могу разработать программу, представляющую конкретное блуждание, которое я хочу.
Это мой код для случайной прогулки
Cammino[g_] =
Block[{graph = g, start, path},
start = RandomChoice[VertexList[graph]];
path = NestList[RandomChoice[AdjacencyList[graph, #]] &, start,
RandomInteger[{2, 30}]];
ListAnimate[
Table[Graph[graph,
VertexStyle ->
Append[Map[Rule[#, Pink] &, Union[path[[1 ;; v]]]],
path[[v]] -> Red],
EdgeStyle ->
Evaluate[(UndirectedEdge[#1, #2] -> Directive[Red, Thick]) & @@@
Partition[path[[1 ;; v]], 2, 1]], VertexSize -> Large], {v,
Length[path]}]]]
И это моя попытка на эйлеровом цикле
Euleriano[g_] =
Block[{grafo = g, inizio, cammino},
inizio = FindEulerianCycle[grafo][[1]][[1]][[1]];
cammino =
NestList[RandomChoice[AdjacencyList[grafo, #]] &, inizio,
RandomInteger[{2, 30}]];
ListAnimate[
Table[Graph[grafo,
VertexStyle ->
Append[Map[Rule[#, Pink] &, Union[cammino[[1 ;; v]]]],
cammino[[v]] -> Red],
EdgeStyle ->
Evaluate[(UndirectedEdge[#1, #2] -> Directive[Red, Thick]) & @@@
Partition[cammino[[1 ;; v]], 2, 1]],
VertexSize -> Large], {v, Length[cammino]}]]]
Для пояснения: cammino = прогулка, inizio = старт, grafo = график.
Я думаю, что мне нужно изменить определение «cammino» во втором фрагменте кода, чтобы обход проходил после определения, полученного с помощью функции Mathematica FindEulerianCycle []. Мой вопрос: как я могу это сделать?