begin (* в город
begin
(* в город с номером j летают самолеты из города i и город j еще не посещался *)
(* включаем город j в маршрут *)
Inc(yk);Way[yk]:=j;New[j]:=false;
rec(j);
(* исключаем город j из маршрута *)
New[j]:=true;Way[yk]:=0;Dec(yk);
(* если исключается самый восточный город (n), то меняем направление *)
if j=n then pp:=true;
end;
end;
Следует отметить, что при этой реализации упрощается вывод результата.
writeln(n);
writeln(yk_max-1);
for i:=1 to yk_max do writeln(name(Way_r[i]]);
Целесообразно сравнение решений при больших значениях n по времени выполнения.
2.3. Метод «решета»
Идея метода. Решето представляет собой метод комбинаторного программирования, который рассматривает конечное множество и исключает все элементы этого множества, не представляющие интереса. Он является логическим дополнением к процессу поиска с возвратом (backtrack), который перечисляет все элементы множества решений, представляющие интерес.
2.3.1. Решето Эратосфена
2
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа