//Pascal
//Массив заполняется случайными числами от 1 до 10
var
A: array [1..10] of byte;
i: byte;
Sum: real;
begin
randomize;
for i := 1 to 10 do
begin
A[i] := random(9)+1;
write(A[i]:3);
Sum := Sum + A[i] + 2;
end;
writeln;
for i := 1 to 10 do writeln(Sum/sqrt(abs(A[i])):0:2);
writeln;
end.
Var
a:array [1..10] of integer;
i,sum,kol:integer;
begin
for i:=1 to 10 do a[i]:=random(10)+1;
for i:=1 to 10 do write(a[i],' ');
writeln;
for i:=1 to 10 do
if a[i] mod 2=0 then sum:=sum+a[i] else kol:=kol+1;
writeln(sum);
writeln(kol);
end.
4, ибо 16 разных кубиков можно пронумеровать числами от 0 до 15, а 15 в двоичной — 1111.
Тут вот в чем дело. Импликация имеет такую таблицу истинности:
A | B | A->B
0 | 0 | 1
0 | 1 | 1
1 | 0 | 0
1 | 1 | 1
Если первое выражение ложно, то при любом втором выражении результат будет истинным.
0 -> (0 -> (x&A =/= 0)) = 1
0 -> (1 -> (x&A =/= 0)) = 1
То есть все выражение истинно при ЛЮБОМ А.
Поэтому нам нужно искать такие х, при которых 1 выражение истинно.
Если 1 выражение истинно, то результат будет истинным ТОЛЬКО если 2 выражение тоже истинно. Но во 2 выражении тоже импликация!
1 -> (0 -> (x&A =/= 0)) = 1 -> 1 = 1
1 -> (1 -> (x&A =/= 0)) = 1 только если (x&A =/= 0) истинно.
Теперь рассмотрим, при каких х первые два выражения ОБА истинны.
35 = 100011(2); 31 = 011111(2)
35 & 31 = 000011(2) = 3
Чтобы выражение
x&A =/= 0 было истинно, в числе А должна быть 1
в любом из двух младших битов в двоичном представлении.
Минимальное А = 1
Это может быть любое число