Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Обозначим через поразрядную конъюнкцию неотрицательных целых чисел
и
.
Так, например, .
На числовой прямой дан отрезок и множество
.
Определите наименьшее натуральное число , такое что выражение
тождественно истинно, то есть принимает значение 1 при любом целом значении переменной х.
Решение 1 (ручками):
Система для врагов:
Разберём мечты врагов:
, то есть
.
, то есть
(объединяя с первым условием)
, то есть
(предыдущие два условия уже учли третье)
, то есть
(учитывая три предыдущих условия)
Теперь рассмотрим последнюю мечту: . Поскольку мы знаем все иксы, которые будут выбирать враги, переведём их в двоичную систему счисления:
Таким образом, мечты врагов такие: «Вот бы на любом из последних шести разрядов в двоичной записи у числа была единичка».
Друзья говорят: «Нет, любая из последних шести цифр числа в двоичной записи равна нолику». Таким образом,
.
Решение 2 (прогой):
def inn(x, A):
return A[0] <= x <= A[1]
def f(x, A):
S = {45, 23, 67}
Q = [12, 48]
return (((x % 3 != 0) and (not (x in S))) <=
((abs(x - 50) <= 7) <= (inn(x, Q))) or (x & A == 0))
for A in range(1, 1000):
flag = True
for x in range(-100, 1000):
if not f(x, A):
flag = False
break
if flag:
print(A)
break