15 задание егэ инфа
я не понимаю, почему у меня не получается правильный ответ {6,18}, то есть 108
Задание:
Элементами множеств А, P, Q, R являются натуральные числа, причём P={2,4,6,8,10,12,14,16
{3,6,9,12,15,18,21,24,27,30}, R={12,24,36,48,60}. Известно, что выражение (x ∈/ A) → (((x ∈ P) ∧ (x ∈ Q)) → (x ∈ R))
истинно (т.е. принимает значение 1 при любом натуральном значении переменной х. Определите наименьшее возможное произведение элементов в множестве A.
Решение:
a = set(range(1000))
def f(x):
A = x not in a
P = x in {2,4,6,8,10,12,14,16,18,20}
Q = x in {3,6,9,12,15,18,21,24,27,30}
R = x in {12,24,36,48,60}
return (A) <= ((P and Q) <= R)
for x in range(1000):
if f(x)==1:
a.add(x)
print(a)
(x ∉ A) → (((x ∈ P) ∧ (x ∈ Q)) → (x ∈ R)) =
(x ∈ A) ∨ (x ∉ P) ∨ (x ∉ Q) ∨ (x ∈ R) =
(x ∈ A) ∨ (x ∉ (P ∩ Q)) ∨ (x ∈ R)
Т.е.:
A = (P ∩ Q) ∖ R
Весь код:
import math
print(math.prod(({2,4,6,8,10,12,14,16,18} & {3,6,9,12,15,18,21,24,27,30}) - {12,24,36,48,60}))
Что касается перебора в лоб, то надо искать только числа, для которых условие ((x ∈ P) ∧ (x ∈ Q)) → (x ∈ R) ложно:
A = set()
P = {2,4,6,8,10,12,14,16,18}
Q = {3,6,9,12,15,18,21,24,27,30}
R = {12,24,36,48,60}
for x in range(1, 61):
if (x in P and x in Q) <= (x in R): continue
A.add(x)
print(A)