Задача к ЕГЭ по информатике на тему «Смешанное» №2

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Обозначим через m&n  поразрядную конъюнкцию неотрицательных целых чисел m  и n  .

На числовой прямой даны отрезки Q = [12;48]  и P = [32,64]  .

Определите наименьшее натуральное число A  , такое что выражение

Д ЕЛ (x,5)∨ (x ∕∈ Q )∨ (x &A = 0)∨ ((x ∈ P) → (|x − 31| ≥ 17))

тождественно истинно, то есть принимает значение 1 при любом целом значении переменной х.

Решение 1 (ручками):
Система для врагов:

( ||| x|| ... 5 |||| |||{ x ∈ Q   x&A ⁄= 0 ||| |||| x ∈ P |||(   |x − 31| < 17

Раскроем последнее неравенство системы: x− 31 < 17  и x− 31 > − 17  » class=»math» src=»/images/inform/reshen/reshen-2955-3.svg» width=»auto»>, то есть <img decoding= и x > 14  » class=»math» src=»/images/inform/reshen/reshen-2955-5.svg» width=»auto»>, то есть <img decoding=. Враги мечтают, чтобы x ∈ [32;48]  P  и в Q  ), x ∈ (14;48)  и при этом они не делились на 5  . Таким образом, чтобы победить, враги будут брать только следующие иксы: {32,33,34,36,37,38,39,41,42,43,44,46,47} . Также враги мечтают, чтобы x&A ⁄= 0  . Максимальный икс, который могут взять друзья, равен 47  , то есть 1011112  , а минимальный икс = 32  , то есть 1000002  . Отсюда заметим, что ни один икс, подходящий врагам, не содержит единичку в пятом с конца разряде в двоичной записи. Тогда мечты врагов такие: «Вот бы у числа A  была единичка в первом, втором, третьем, четвёртом или шестом с конца разряде в двоичной записи».

Друзья говорят: «Нет, число A  не содержит единичку ни на одном из этих разрядов». Минимальное A  , которое могут взять друзья, равно 100002  , то есть Amin = 16  .

 

Решение 2 (прогой):

def f(x, A):
    Q = [12, 48]
    P = [32, 64]
    return ((x % 5 == 0) or (not inn(x, Q)) or (x & A == 0) or ((inn(x, P)) <= (abs(x - 31) >= 17)))

def inn(x, P):
    return P[0] <= x <= P[1]

for A in range(1, 1000):
    flag = True
    for x in range(-1000, 1000):
        if not f(x, A):
            flag = False
            break
    if flag:
        print(A)
        break

Ответ: 16
Оцените статью
Я решу все!