j:integer; begin j:=0; repe


j:integer; begin j:=0; repeat inc(j);q:=false;{цикл по вертикали} if D_hod(i,j) then begin Hod(i,j); if i<8 then begin Solve(i+1,q); if not q then O_hod(i,j); end else q:=true;{решение найдено} end; until q or (j=8); end; Возможные модификации. Поиск всех решений. Для доски 8*8 ответ 92. Procedure Solve(i:integer); var j:integer; begin if i<=N then begin for j:=1 to N do if D_hod(i,j) then begin Hod(i,j); Solve(i+1); O_hod(i,j); end; end else begin Inc(S);{счетчик числа решений, глобальная переменная} Print;{вывод решения} end; end; Поиск только не симметричных решений. Для доски 8*8 ответ 12. Эта модификация требует предварительных разъяснений. Из каждого решения задачи о ферзях можно получить ряд других при помощи вращений доски на 90о, 180о и 270о и зеркальных отражений относительно линий , разделяющих доску пополам (система координат фиксирована). Доказано, что в общем случае
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz