Тема 15. Алгебра логики – преобразование логических выражений

15.03 Неравенства

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела алгебра логики – преобразование логических выражений
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#29690

Для какого наименьшего целого неотрицательного числа A  выражение

(3x + 4y ⁄= 52)∨ (A < x )∨(y ≤ x)

тождественно ложно хотя бы при одном наборе натуральных значений x  и y  ?

Показать ответ и решение

Аналитическое решение

Чтобы дизъюнкция была ложной при некотором неотрицательном целом значении x  и y  рассмотрим случай, когда (3x+ 4y ⁄= 52) = 0,  (y ≤ x) = 0  и (A < x) = 0.

Это эквивалентно следующей системе:

(|
||{3x + 4y = 52,
 y > x,
|||(
 A ≥ x

Определим подходящие пары значений (x;y)  , которые удовлетворяют первым 2 условиям системы:

y = 13− 3x
        4

     3
13−  4x > x

    52
x < 3 ≈ 7.4

Так как y = 13 − 3x,
        4  а оба числа – натуральные, то подойдет только пара (4;10).

Значит, должно выполняться неравенство A ≥ 4,  откуда наименьшее значение A  4.

Идея решения:

Перебираем целые неотрицательные значения A  по возрастанию (в коде — от 0 до 999). Для каждого A  вложенными циклами for перебираем все натуральные числа x  и y  (в коде — от 1 до 999) и проверяем выражение

(3x +4y ⁄= 52)∨ (A < x) ∨(y ≤ x).

Если для какой-либо пары (x,y)  выражение ложно, текущий A  подходит, так как условие задачи требует, чтобы формула была ложна хотя бы для одного набора значений. Первое найденное такое A  и будет наименьшим подходящим.

Решение программой:

# перебор возможных значений A от 0 до 999
for a in range(0, 1000):  # перебираем неотрицательные A
    c = 0  # переменная-флаг, показывает найдено ли "ложное" значение
    # перебор натуральных x
    for x in range(1, 1000):
        # перебор натуральных y
        for y in range(1, 1000):
            # вычисляем логическое выражение
            F = (3*x + 4*y != 52) or (a < x) or (y <= x)
            # если выражение ложно, A подходит
            if F == False:
                c = 1  # меняем значение флага
                break
        # если флаг изменился, прекращаем оба цикла
        if c == 1:
            break
    # если найдено хотя бы одно ложное выражение, выводим A и прекращаем поиск
    if c == 1:
        print(a)
        break

Ответ: 4

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

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

Бесплатное онлайн-обучение

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

Налоговые вычеты

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

Специальное предложение
для учителей

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

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!