модификациями задачи
модификациями задачи поиска всех путей выхода из лабиринта являются:
• поиск одного пути;
• поиск одного пути кратчайшей длины методом «волны».
Решение первой задачи.
program Labirint;
const Nmax=...;
dx:array[1..4] of integer=(1,0,-1,0);
dy:array[1..4] of integer=(0,1,0,-1);
type MyArray=array[0..Nmax+1,0..Nmax+1] of integer;
var A:MyArray;
xn,yn,xk,yk,N:integer;
procedure Init;
...
begin
<Ввод лабиринта, координат начальной и конечной клеток. Границы поля отмечаются как препятствия>;
end;
procedure Print;
....
begin
<вывод матрицы А - метками выделен путь выхода из лабиринта>;
end;
procedure Solve(x,y,k:integer);{k - номер шага, x,y - координаты клетки}
var i:integer;
begin
A[x,y]:=k;
if (x=xk) and (y=yk) then Print
else for i:=1 to 4 do
if A[x+dx[i],y+dy[i]]=0 then Solve(x+dx[i],y+dy[i],k+1);
A[x,y]:=0;
end;
begin
Init;
Solve(xn,yn,1);
end.
2.1.5. Задача о парламенте
На острове Новой
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа