15.06 Смешанное
Ошибка.
Попробуйте повторить позже
Пусть на числовой прямой дан отрезок . Обозначим через ДЕЛ(n, m) утверждение «натуральное число n
делится без остатка на натуральное число m». Для какого наибольшего натурального числа А формула
ДЕЛ
ДЕЛ
тождественно истинна (т.е. принимает значение 1) при любом натуральном значении переменной х?
Решение руками:
Сначала проанализируем высказывание целиком. Дана импликация, она дает 0 только в том случае, когда из 1
следует 0. Определим, когда левая часть высказывания дает 1 – когда принадлежит отрезку
. Значит, все
эти иксы должны давать 1 в левой части.
Рассмотрим левую для : высказывание
ДЕЛ
дает истину для всех
отрезка, кроме
и
, следовательно, нужно подобрать такое
, которое будет давать истину в высказываниии ДЕЛ
для
этих двух значений.
Чтобы найти такое наибольшее нужно определить наибольший общий делитель чисел 42 и 63. Это число
21.
Решение программой:
Для того чтобы найти наибольшее значение , при котором выражение
тождественно истинно для всех , мы используем перебор.
Основная идея состоит в том, что мы будем поочерёдно проверять возможные значения , начиная с большого и
уменьшая его. Для каждого
мы должны убедиться, что для всех
условие выполняется.
1. Сначала мы формируем список всех чисел, входящих в отрезок , то есть от 35 до 65 включительно.
Для этого применяем генератор списка [i for i in range(35, 66)], где функция range(35, 66) создаёт числа от 35
до 65.
2. Далее мы запускаем цикл for a in range(100, 1, -1), который перебирает все целые числа от 100 до 2
включительно в порядке убывания. Мы начинаем с больших значений
, чтобы при первой же полной проверке найти
максимально возможное.
3. Внутри цикла для каждого мы создаём переменную-флаг f = 0, которая отвечает за то, корректно ли
выполняется условие для данного
. Если флаг изменится на 1, значит, найдено нарушение.
4. Дальше мы перебираем переменную в диапазоне range(1, 300), то есть от 1 до 299. В этом цикле мы
проверяем для каждого
, выполняется ли логическое выражение:
- условие проверяется с помощью (x in b),
- условие проверяется через x % 21 != 0, так как операция % возвращает остаток от деления, и если
остаток не равен 0, то число не делится,
- условие проверяется через x % a == 0, то есть остаток от деления равен нулю.
Таким образом, вся проверка реализована как (x in b) <= (x % 21 != 0 or x % a == 0). Здесь символ <= играет роль импликации: если x in b истинно, то должно выполняться хотя бы одно из условий справа.
5. Если для какого-то выражение оказалось ложным, то есть результат сравнения равен False, мы присваиваем
f = 1 и прерываем цикл. Это означает, что данное
не подходит.
6. Если после полного перебора всех флаг f остался равным 0, значит, выражение истинно для всех
. Тогда
мы печатаем текущее значение
и прерываем цикл, так как оно гарантированно является наибольшим подходящим
.
Таким образом, программа методом перебора проверяет все кандидаты на и выбирает максимальный из
них.
# формируем список чисел из отрезка [35; 65] b = [i for i in range(35, 66)] # перебираем кандидаты для A от 100 до 2 (включительно), в обратном порядке for a in range(100, 1, -1): # флаг: 0 - условие выполняется для всех x, 1 - найдено нарушение f = 0 # перебор значений x от 1 до 299 for x in range(1, 300): # проверка импликации: (x in B) -> (x не делится на 21 или x делится на A) if ((x in b) <= (x % 21 != 0 or x % a == 0)) == False: # если найдено нарушение, ставим флаг = 1 и прерываем цикл f = 1 break # если для данного a не было нарушений, выводим результат и останавливаем программу if f == 0: print(a) break
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!