включения (исключения)


включения (исключения) столбца с номером k в решение (из решения) имеет вид: procedure Include(k:integer); {включить столбец в решение} {A*, R, Price, S, P - глобальные переменные} var j:integer; begin P:=P+Price[k];{текущая цена решения} S[k]:=true;{столбец с номером k в решение} for j:=1 to N do if A*[j,k]=1 then R[j]:=true; {строки, “покрытые” столбцом k} end;{Include} procedure Exclude(k:integer);{исключить столбец из решения} var j:integer; begin p:=p-Price[k]; S[k]:=false; for j:=1 to N do if (A*[j,k]=1) and R[j] then R[j]:=false; end;{Exclude} Проверка, сформировано ли решение, заключается в том, чтобы просмотреть массив R и определить, все ли его элементы равны истине. function Result:boolean; var j:integer; begin j:=1; while (j<=N) and R[j] do Inc(j); if j=N+1 then Result:=true else Result:=false; end; {Result} Кроме перечисленных “кирпичиков”, нам необходимо уметь определять, можно ли столбец с номером
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz