# все определенные

все определенные выше симметрии шахматной доски, причем не принципиально, в какой последовательности выполняются эти процедуры для каждой конкретной композиции. Проверка «на минимальность» решения производится функцией Cmp, которая возвращает значение true в том случае, когда одно из симметричных решений строго меньше текущего. {не лучший вариант реализации - отсечение на выводе решений} type Tarray=array[1..N] of integer; .... procedure Sim1(var X:Tarray); var i:integer; begin for i:=1 to N do X[i]:=N-X[i]+1; end; procedure Sim2(var X:Tarray); var i,r:integer; begin for i:=1 to N do begin r:=X[i]; X[i]:=X[N-i+1];X[N-i+1]:=r; end; end; procedure Sim3(var X:Tarray); var Y:Tarray; i:integer; begin for i:=1 to N do Y[X[i]]:=i; X:=Y; end; function Cmp(X,Y:Tarray):boolean; var i:integer; begin i:=1; while (i&lt;=N) and (Y[i]=X[i]) do Inc(i); if i&gt;N then Cmp:=false else if Y[i]&lt;X[i] then Cmp:=true else Cmp:=false;

Индекс
Элементарные функции Линейные уравнения Нелинейные уравнения Случайные числа