8. Сколько различных решений имеет система логических уравнений (x1 \/ y1) \/ (x2\/ y2) = 1
(x2\/ y2) \/(x3\/ y3) = 1
(x3\/ y3) \/ (x4\/ y4) = 1
(x4\/y4) \/ (x5\/y5) = 1
x2\/y4 = 0
где x1,x2,…,x5 и y1,y2,…,y5 – логические переменные? В ответе не нужно перечислять все различные наборы значений переменных, при которых выполнено данное равенство. В качестве ответа нужно указать количество таких наборов реши ть
mobile_devices = {
'cucuPhone': 2010,
'cucuBlet': 2013,
'cucuClock': 2015,
'cucuEar': 2018,
'cuCube': 2015,
}
home_devices = {
'cucuLot': 2011,
'cucuBlock': 2010,
'cucuWall': 2010,
'cucuMonitor': 2020,
'cucuLamp': 2015,
'cucuTable': 2016,
'cucuTV': 2017,
}
not_supported_devices = {'cucuBlock', 'cucuBlet', 'cucuWall'}
result_supported = {}
# Функция объединяет ключи двух словарей в один set и возвращает его
def union_devices(devices_obj_1, devices_obj_2):
set_1 = set(devices_obj_1)
set_2 = set(devices_obj_2)
union_set = set_1.union(set_2)
return union_set
# Функция находит разницу двух сетов и возвращает её в виде set
def difference_device(all_devices, not_supported_devices):
diff_set = all_devices.difference(not_supported_devices)
return diff_set
# Функция копирует элементы из исходных словарей в результирующий словарь
def is_supported(dict_devices, device):
if device in dict_devices:
result_supported[device] = dict_devices[device]
# Вызываем union_devices(), чтобы получить полный перечень устройств
all_devices = union_devices(mobile_devices, home_devices)
# В result_devices сохранить сет, который вернёт функция difference_device()
result_devices = difference_device(all_devices, not_supported_devices)
# Перебрать в цикле сет result_devices и для каждого элемента
# дважды вызвать функцию is_supported:
# - с аргументами mobile_devices, device
# - и с аргументами home_devices, device
for device in result_devices:
is_supported(mobile_devices, device)
is_supported(home_devices, device)
print(result_supported)
Объяснение:
c:array of array of integer;
ma:array of array of integer;
i,j,n:integer;
begin;
randomize;
readln(n);
setlength(a,n+1); //задаём размерность динамических массивов
setlength(c,n+1);
setlength(ma,n+1);
for i:=1 to n do
begin;
setlength(a[i],n+1);
setlength(c[i],n+1);
setlength(ma[i],n+1);
end;
writeln('Matrix A:'); //генерируем массив псеводслучайных чисел
for i:=1 to n do begin;
writeln;
for j:=1 to n do
begin;
a[i,j]:=random(10);
write(a[i,j]:4);
end;
end;
writeln;
writeln('Matrix C:'); //аналогично
for i:=1 to n do
begin;
writeln;
for j:=1 to n do
begin;
c[i,j]:=random(10);
write(c[i,j]:4);
end;
end;
for i:=1 to n do //сохраняем матрицу C для транспонации
for j:=1 to n do
ma[i,j]:=c[i,j];
writeln;
writeln('Transpose matrix C:'); //транспонируем C
for i:=1 to n do
begin;
writeln;
for j:=1 to n do
begin;
c[i,j]:=ma[j,i];
write(c[i,j]:4);
end;
end;
writeln;
writeln('Final matrix:'); // получаем финальную матрицу
for i:=1 to n do
begin;
writeln;
for j:=1 to n do
begin;
ma[i,j]:=2*c[i,j]*a[i,j];
{по свойству дистрибутивности матриц С(A+A)=C*A+C*A=2*C*A}
write(ma[i,j]:4);
end;
end;
end.