Определение импликации:
A → B == ~A + B
~(A + ~B) + (B * C * D) = 1
По закону де Моргана:
(~A * B) + (B * C * D) = 1
Группируем:
B * (~A + C * D) = 1
Можем записать решения:
A B C D
0 1 0 0
0 1 0 1
0 1 1 0
0 1 0 1
1 1 1 1
//Pascal ABC.NET v3.1 сборка 1172
var
NA, NB, NC: integer;
function minim(ar: array of real; n: integer): real;
var
i: integer;
min: real;
begin
min := MaxReal;
for i := 0 to n - 1 do //динамические массивы индексируются с 0
if min > ar[i] then min := ar[i];
minim := min;
end;
begin
randomize;
write('NA:');readln(NA); //ввод размерностей
write('NB:');readln(NB);
write('NC:');readln(NC);
var a := ArrRandomReal(NA, 1, NA); //инициализация динамических массивов
var b := ArrRandomReal(NB, 1, NB);
var c := ArrRandomReal(NC, 1, NC);
a.println(' ');
writeln('Min:', minim(a, NA));
b.println(' ');
writeln('Min:', minim(b, NB));
c.println(' ');
writeln('Min:', minim(c, NC));
end.
Пример ввода:
NA:3
NB:4
NC:5
Пример вывода:
2.45183664907321 2.12786289357015 2.8286734511278
Min:2.12786289357015
3.47355249453036 1.03827733129183 2.42042394141686 2.17556424353996
Min:1.03827733129183
3.9204495134393 3.64103751938838 3.57791954771519 4.31033914690387 4.13624760282051
Min:3.57791954771519
Программа на паскале для решения задачи - в прилагаемом файле
8бит=1байта
16бит=2байта
8*32*64*2=32768байт переводим в Кбайты 1Кбайт=1024байта
32768/1024=32Кбайт
ОТДЕЛ Задание+;
ИСПОЛЬЗУЕТ Матем ИЗ "...\Отделы\Обмен\", Вывод ИЗ "...\Отделы\Обмен\", Приём;
ПЕР
массив: ДОСТУП К РЯД ИЗ ЦЕЛ;
N, сч, отрицательных: ЦЕЛ;
УКАЗ
N := Приём.Число();
СОЗДАТЬ(массив, N);
отрицательных := 0;
ОТ сч := 0 ДО N - 1 ВЫП
массив[сч] := УЗК(ВШИРЦЕЛ(Матем.случ() * 20)) - 10;
ЕСЛИ массив[сч] < 0 ТО УВЕЛИЧИТЬ(отрицательных) КОН
КОН;
Вывод.ЧЦел("^%d", отрицательных, 0, 0, 0)
КОН Задание.