В соответствии с вариантом (Варианты часть 2.1.) на базе полученной таблицы истинности логической функции f произвести следующие операции:
2.1.1.Записать СКНФ и СДНФ логической функции f согласно таблице истинности. 2.1.2. Минимизировать логическую функцию f при метода Квайна для СДНФ. Полностью описать процесс минимизации. 2.1.3. Минимизировать логическую функцию f при диаграммы Вейча для СДНФ. Полностью описать процесс минимизации. 2.1.4. Построить логическую схему устройства на основании полученных минимальных
нормальных форм.
TMatrix = array[,] of integer;
TVector = array of integer;
var
A: TMatrix;
B: TVector;
m,n,i,j: integer;
procedure CreateMulVector(A:TMatrix; var B: TVector);
var i, j: integer; f: boolean;
begin
SetLength(B, Length(A, 0));
for i := 0 to Length(A, 0) - 1 do begin
B[i] := 1; f := false;
for j := 0 to Length(A, 1) - 1 do begin
if A[i,j] > 0 then begin
f := true;
B[i] := B[i] * A[i,j];
end;
end;
if not f then B[i] := 0;
end;
end;
procedure WriteVector(B: TVector);
var i: integer;
begin
for i := 0 to Length(B) - 1 do
write(B[i]:3);
end;
begin
randomize;
n := Random(10) + 1;
m := Random(10) + 1;
SetLength(A, n, m);
writeln('Исходная матрица:');
for i := 0 to n-1 do begin
for j := 0 to m-1 do begin
A[i,j] := Random(10) - 5;
write(A[i,j]:4);
end;
writeln;
end;
CreateMulVector(A, B);
writeln('Полученный вектор:');
WriteVector(B);
end.
Объём информации о том, что отобран конкретный ученик, находится из уравнения 2^i = 64, т.е. i = 6 бит. Тогда было отобрано 72 / 6 = 12 человек.
На самом деле эта задача НЕКОРРЕКТНА. Разумнее хранить информацию о том, какое подмножество было выбрано. Всего подмножеств 2^64 - следовательно, любое подмножество однозначно кодируется 64 битами.
Например, кодировать можно так: на i-м месте будем ставить 1, если i-ый претендент выбран, и 0 в противном случае. Тогда строчка 001000...00 будет говорить о том, что выбран только третий претендент, а 111...110 - все претенденты кроме последнего.