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

15.07 Прочие прототипы

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

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

Задача 1#63669

Обозначим через ТРЕУГ(n,m, k  ) утверждение «существует невырожденный треугольник с длинами сторон n,m  и k  ».

Для скольких натуральных чисел A  формула

ТР ЕУ Г(x, 20, 45)∨ Т РЕ УГ (x, 15, 50 )∨ ТР ЕУ Г(М А КС (x, 16), 36, A )∨ (x > 75)

тождественно истинна (т. е. принимает значение 1) при любом натуральном значении переменной x  ?

Примечание. М АК С(a,b) = a  , если a > b  и МА КС (a,b) = b  , если a ≤ b  .

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

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

Идея решения состоит в следующем:

1. Создаём функцию triangle(a, b, c), проверяющую существование треугольника с заданными сторонами:

- Сначала сортируем стороны по возрастанию, чтобы корректно проверить неравенство треугольника.

- Проверяем, выполняется ли неравенство a+ b > c  для трёх сторон.

- Функция возвращает True, если треугольник существует, и False в противном случае.

2. Организуем перебор всех возможных значений A  :

- Перебираем A  от 1 до 99 (натуральные числа в разумном диапазоне).

3. Для каждого значения A  проверяем тождественную истинность формулы:

- Создаём переменную flag = True, которая будет показывать, что формула верна для всех x  .

- Перебираем x  от 1 до 99.

- Для каждого x  проверяем формулу:

- Выражение triangle(x, 20, 45) or triangle(x, 15, 50) or triangle(max(x, 16), 36, A) or (x > 75).

- Если формула ложна хотя бы для одного x  , устанавливаем flag = False.

- Если после проверки всех x  flag = True, увеличиваем счётчик counter.

4. После перебора всех A  выводим значение счётчика, которое является количеством подходящих натуральных чисел A  .

# Функция для проверки существования невырожденного треугольника
def triangle(a, b, c):
    # Сортируем стороны по возрастанию для корректной проверки неравенства треугольника
    a, b, c = sorted([a, b, c])
    # Проверяем условие треугольника: сумма двух меньших сторон > третьей
    return a + b > c

# Счётчик количества подходящих чисел A
counter = 0

# Перебор всех натуральных чисел A от 1 до 99
for A in range(1, 100):
    flag = True  # Флаг: True, если формула тождественно истинна для данного A
    # Перебор всех натуральных x от 1 до 99
    for x in range(1, 100):
        # Проверяем формулу для текущего x и A
        if (triangle(x, 20, 45) or triangle(x, 15, 50) or triangle(max(x, 16), 36, A) or (x > 75)) == False:
            flag = False  # Если формула ложна хотя бы для одного x, A не подходит
    # Если формула истинна для всех x, увеличиваем счётчик
    if flag:
        counter += 1

# Выводим количество подходящих чисел A
print(counter)

Ответ: 12

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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