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

15.01 Деление без остатка

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

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

Задача 21#51785Максимум баллов за задание: 1

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа А формула

ДЕ Л (x, A ) → (Д ЕЛ (x, 14) ∧Д Е Л(x, 21))

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

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

Решение руками:

Введем обозначения: A = Д ЕЛ (x, A ),P = ДЕ Л(x, 14),Q = ДЕ Л (x, 21))

Таким образом истиным для всех x  должно быть выражение A → (P ∧Q )  .Упростим это выражение, раскрыв импликацию: --
A ∨ P ∧ Q  .

Из этой формулы видно, что множество A  должно перекрыть множество, которое не перекрыто множеством P ∧ Q  . Множество P ∧ Q  – это множество всех чисел, которые не делятся одновлеменно на 14 и 21. Поэтому чтобы найти наименьшее A  необходимо найти наименьшее общее кратное чисел 14 и 21 – это 42.

 

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

Для нахождения наименьшего натурального числа A  , при котором формула

Д ЕЛ(x,A ) → (ДЕ Л(x,14)∧ ДЕЛ (x,21))

тождественно истинна для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверить все значения A  от 1  до 1499  . Для каждого A  перебираем x  от 1  до 4999  и проверяем истинность формулы. Если хотя бы для одного x  выражение оказывается ложным, текущее A  отбрасываем. Так как нам нужно минимальное A  , поиск прекращаем сразу после нахождения первого подходящего значения.

for a in range(1, 1500):
    # Переменная-флаг,
    # которой присваивается 1, если хотя бы одно выражение выдаёт ложь
    f = 0
    for x in range(1, 5000):
        # Если выражение ложно(нам нужны только истинные),
        # то приостанавливаем цикл
        if ((x % a == 0) <= ((x % 14 == 0) and (x % 21 == 0))) == False:
            f = 1
            break
    # Так как ищем минимальное значение,
    # то сразу же после его нахождения прерываем цикл
    if f == 0:
        print(a)
        break

Получаем ответ: 42.

Ответ: 42

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

Задача 22#51786Максимум баллов за задание: 1

Обозначим через ДЕЛ(n  , m  ) утверждение «натуральное число n  делится без остатка на натуральное число m  ». Для какого наименьшего натурального числа A  формула

(¬Д ЕЛ (x,19)∨ ¬Д ЕЛ (x,15)) → ¬Д ЕЛ (x,A)

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

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

Решение руками:

Введем обозначения: A = Д ЕЛ (x, A ),P = ДЕ Л(x, 19),Q = ДЕ Л (x, 15))

Таким образом истиным для всех x  должно быть выражение (P-∨ Q-) → A  . Упростим это выражение, раскрыв импликацию:         --
P ∧ Q ∨ A  .

Из этой формулы видно, что множество A  должно перекрыть множество, которое не перекрыто множеством P ∧ Q  . Множество P ∧Q  – это множество всех чисел, которые делятся одновременно на 19 и 15. Поэтому чтобы найти наименьшее A  необходимо найти наименьшее общее кратное чисел 15 и 19 – это 285.

 

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

Для нахождения наименьшего натурального числа A  , при котором формула

(¬Д ЕЛ (x,19)∨ ¬Д ЕЛ(x,15)) → ¬ ДЕ Л(x,A)

тождественно истинна для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверить все значения A  от 1  до 299  . Для каждого A  перебираем x  от 1  до 499  и проверяем истинность формулы. Если хотя бы для одного x  выражение оказывается ложным, текущее A  отбрасываем. Так как нам нужно минимальное A  , поиск прекращаем сразу после нахождения первого подходящего значения.

# перебор возможных значений A от 1 до 299
for a in range(1, 300):
    # переменная-флаг: 0 - формула истинна для всех x, 1 - хотя бы один x нарушает
    f = 0
    # перебор всех x от 1 до 499
    for x in range(1, 500):
        # проверка формулы для текущего x и A
        if (((x % 19 != 0) or (x % 15 != 0)) <= (x % a != 0)) == False:
            # если формула ложна, отмечаем и прекращаем проверку для этого A
            f = 1
            break
    # если формула истинна для всех x, выводим найденное минимальное A
    if f == 0:
        print(a)

Получаем ответ: 285.

Ответ: 285

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

Задача 23#54815Максимум баллов за задание: 1

Обозначим через ДЕЛ(n  , m  ) утверждение «натуральное число n  делится без остатка на натуральное число m  ». Для какого наибольшего натурального числа A  формула

Д ЕЛ (x,24) → (ДЕ Л (x,72) → Д ЕЛ (x,A ))

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

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

Решение руками:

Введем обозначения: A = Д ЕЛ (x, A ),P = ДЕ Л(x, 24),Q = ДЕ Л (x, 72))

Таким образом истиным для всех x  должно быть выражение P → (Q → A )  . Упростим это выражение, раскрыв импликации: --  --
P ∨ Q ∨A  .

Из этой формулы видно, что множество A  должно перекрыть множество, которое не перекрыто множеством P-∨ Q-  . Предположим, что P-∨Q-=  0  , отсюда P ∧Q = 1  , значит, множество P-∨Q-  ложно, когда число делится и на 24, и на 77. Найдем НОК чисел 24 и 72, оно равно 72. Значит число 72 должно делиться на А без остатка, тогда наибольшее возможное А это 72.

 

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

Для нахождения наибольшего целого A  , при котором выражение

ДЕЛ (x,24) → (ДЕ Л(x,72) → ДЕЛ (x,A ))

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверить все значения A  от 1  до 199  . Для каждого A  перебираем все x  от 1  до 499  и вычисляем формулу. Если хотя бы для одного x  выражение оказалось ложным, текущее A  отбрасываем. Если формула выполняется для всех x  , сохраняем найденное значение. В конце получаем наибольшее подходящее A  .

# перебор возможных значений A от 1 до 199
for a in range(1, 200):
    # флаг: 0 - формула выполняется для всех x, 1 - хотя бы один x нарушает
    f = 0
    # перебор всех x от 1 до 499
    for x in range(1, 500):
        # проверяем выполнение логического выражения при данных x и A
        if ((x % 24 == 0) <= ((x % 72 == 0) <= (x % a == 0))) == False:
            # если формула оказалась ложной, фиксируем нарушение и прекращаем проверку
            f = 1
            break
    # если формула выполняется для всех x, выводим найденное A
    if f == 0:
        print(a)

Получаем ответ: 72.

Ответ: 72

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

Задача 24#54817Максимум баллов за задание: 1

Обозначим через ДЕЛ(n,m)  утверждение «натуральное число n  делится без остатка на натуральное число m  ». Для какого наименьшего натурального числа A  формула

(ДЕЛ (x,A)∧ ¬Д ЕЛ(x,22)) → (Д ЕЛ(x,40)∨ ДЕ Л(x,15))

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

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

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

Для нахождения наименьшего целого A  , при котором выражение

(ДЕЛ (x,A)∧ ¬Д ЕЛ(x,22)) → (Д ЕЛ(x,40)∨ ДЕ Л(x,15))

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверять все значения A  от 1  до 199  с помощью цикла for. Для каждого A  перебираем все x  от 1  до 499  . На каждом шаге вычисляем логическое выражение. Если хотя бы для одного x  выражение оказалось ложным, данное    A  исключается. Если выражение истинно для всех x  , найденное A  является минимально подходящим, и цикл завершается.

# перебор возможных значений A от 1 до 199
for a in range(1, 200):
    # флаг: 0 - формула выполняется для всех x, 1 - найдено нарушение
    f = 0
    # перебор всех x от 1 до 499
    for x in range(1, 500):
        # проверяем выполнение логического выражения при данных x и A
        if (((x % a == 0) and not (x % 22 == 0)) <= \
            ((x % 40 == 0) or (x % 15 == 0))) == False:
            # если формула оказалась ложной, фиксируем нарушение и прекращаем проверку
            f = 1
            break
    # если формула выполняется для всех x, найдено наименьшее подходящее A
    if f == 0:
        print(a)
        break

Получаем ответ: 15.

Ответ: 15

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

Задача 25#54818Максимум баллов за задание: 1

Обозначим через ДЕЛ(n  , m  ) утверждение «натуральное число n  делится без остатка на натуральное число m  ». Для какого наибольшего натурального числа A  формула

(Д ЕЛ (x,45) ∧Д ЕЛ (x,70)) → Д ЕЛ (x,A)

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

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

Решение руками:

Введем обозначения: A = Д ЕЛ (x, A ),P = ДЕ Л(x, 45),Q = ДЕ Л (x, 70))

Таким образом истиным для всех x  должно быть выражение (P ∧ Q ) → A  .Упростим это выражение, раскрыв импликацию: --  --
P ∨ Q ∨ A  .

Из этой формулы видно, что множество A  должно перекрыть множество, которое не перекрыто множеством P-∨ Q-  . Предположим, что P-∨Q-=  0  , отсюда P ∧Q = 1  , значит, множество P-∨Q-  ложно, когда число делится и на 45, и на 70. Найдем НОК чисел 45 и 70, оно равно 630. Значит 630 должно делиться на А без остатка, тогда наибольшее возможное А это 630.

 

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

Для нахождения наибольшего целого A  , при котором выражение

(ДЕ Л(x,45)∧ ДЕЛ (x,70)) → ДЕ Л(x,A)

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверить все значения A  от 1  до 999  с помощью цикла for. Для каждого A  перебираем все x  от 1  до 1499  . На каждом шаге вычисляем логическое выражение. Если хотя бы для одного x  выражение оказалось ложным, текущее A  исключается. Если же выражение истинно для всех x  , то такое A  подходит. В конце работы алгоритма наибольшее найденное A  будет являться ответом.

# перебор возможных значений A от 1 до 999
for a in range(1, 1000):
    # флаг: 0 - формула выполняется для всех x, 1 - найдено нарушение
    f = 0
    # перебор всех x от 1 до 1499
    for x in range(1, 1500):
        # проверяем выполнение логического выражения при данных x и A
        if (((x % 45 == 0) and (x % 70 == 0)) <= (x % a == 0)) == False:
            # если формула оказалась ложной, фиксируем нарушение и прекращаем проверку
            f = 1
            break
    # если формула выполняется для всех x, выводим найденное A
    if f == 0:
        print(a)

Получаем ответ: 630.

Ответ: 630

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

Задача 26#59593Максимум баллов за задание: 1

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа А формула

Д ЕЛ (x, A ) → (Д Е Л(x, A) → (Д ЕЛ (x, 34) ∧Д ЕЛ (x, 51 )))

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

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

Решение руками

Обозначим элементы выражения как:

ДЕЛ(x,A) – A

ДЕЛ(x,34) – 34

ДЕЛ(x,51) – 51

Тогда запишем выражение:

A → (A → (34∧ 51))

Упростим выражение:

¬A ∨ (¬A ∨ (34 ∧51))

¬A  ∨(34∧ 51)

Данное выражение должно равняться 1. Найдем случаи, когда известная часть равна 1, а часть с А - 0:

34∧ 51

Получается, что максимальное значение А равно НОК(34,51) = 102.

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

Для нахождения наименьшего целого A  , при котором выражение

Д ЕЛ (x,A ) → (Д ЕЛ(x,A ) → (ДЕ Л(x,34)∧ ДЕЛ (x,51)))

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверять все возможные значения A  от 1  до 999  с помощью цикла for. Для каждого A  перебираем все x  от    1  до 1999  . На каждом шаге вычисляем логическое выражение. Если хотя бы для одного x  формула ложна, текущее A  исключается. Если формула оказывается истинной для всех x  , то такое A  является подходящим. Так как требуется найти минимальное A  , алгоритм завершает работу при первой же удачной проверке. В конце работы программы найденное A  будет являться ответом.

# перебор возможных значений A от 1 до 999
for a in range(1, 1000):
    # флаг: 0 - формула выполняется для всех x, 1 - найдено нарушение
    f = 0
    # перебор всех x от 1 до 1999
    for x in range(1, 2000):
        # проверяем выполнение логического выражения при данных x и A
        if ((x % a == 0) <= ((x % a == 0) <= ((x % 34 == 0) and (x % 51 == 0)))) == False:
            # если формула оказалась ложной, фиксируем нарушение и прекращаем проверку
            f = 1
            break
    # если формула выполняется для всех x, выводим найденное минимальное A
    if f == 0:
        print(a)
        break

Получаем ответ: 102.

Ответ: 102

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

Задача 27#60312Максимум баллов за задание: 1

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа A формула

(A < 500)∧ (Д ЕЛ (x,5) − → (ДЕ Л(x,A)∨ ДЕ Л(x,25)))

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

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

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

Для нахождения наибольшего целого A  , при котором выражение

(A < 500)∧ (ДЕ Л(x,5) → (Д ЕЛ(x,A )∨Д ЕЛ (x,25)))

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверить все значения A  от 1  до 1499  с помощью цикла for. Для каждого A  перебираем все значения x  от   1  до 4999  . На каждом шаге вычисляем логическое выражение. Если хотя бы для одного x  формула оказывается ложной, текущее A  исключается. Если формула остаётся истинной для всех x  , то это A  является подходящим. Так как требуется найти наибольшее A  , программа проходит весь диапазон и фиксирует максимальное значение, при котором условие выполняется. В конце работы найденное A  является ответом.

# перебор возможных значений A от 1 до 1499
for a in range(1, 1500):
    # флаг: 0 - формула выполняется для всех x, 1 - найдено нарушение
    f = 0
    # перебор всех x от 1 до 4999
    for x in range(1, 5000):
        # проверка логического выражения при текущих a и x
        if ((a < 500) and ((x % 5 == 0) <= ((x % a == 0) or (x % 25 == 0)))) == False:
            # если формула оказалась ложной, фиксируем нарушение и прерываем цикл
            f = 1
            break
    # если выражение истинно для всех x, выводим наибольшее подходящее A
    if f == 0:
        print(a)

Получаем ответ: 5.

Ответ: 5

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

Задача 28#63009Максимум баллов за задание: 1

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа A формула

ДЕ Л(A,12)∧ (ДЕЛ (530,x) → (¬Д ЕЛ(A,x) → ¬Д ЕЛ (170,x)))

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

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

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

Для нахождения наименьшего целого A  , при котором выражение

ДЕ Л(A,12)∧ (ДЕЛ (530,x) → (¬Д ЕЛ(A,x) → ¬Д ЕЛ (170,x)))

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверить все значения A  начиная с 1  с помощью цикла for. Для каждого A  перебираем все значения x  от 1  до 1000  . На каждом шаге вычисляем логическое выражение. Если хотя бы для одного x  формула оказывается ложной, текущее A  исключается. Так как требуется найти минимальное A  , программа завершает перебор сразу после нахождения первого подходящего значения. В конце работы найденное A  является ответом.

# перебор возможных значений A начиная с 1
for a in range(1, 1000):
    # флаг: 0 - формула выполняется для всех x, 1 - найдено нарушение
    f = 0
    # перебор всех x от 1 до 1000
    for x in range(1, 1001):
        # проверка логического выражения при текущих a и x
        if ((a % 12 == 0) and ((530 % x == 0) <= ((a % x != 0) <= (170 % x != 0)))) == False:
            # если формула оказалась ложной, фиксируем нарушение и прерываем цикл
            f = 1
            break
    # если выражение истинно для всех x, выводим минимальное подходящее A и прерываем перебор
    if f == 0:
        print(a)
        break

Получается ответ: 60.

Ответ: 60

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

Задача 29#63010Максимум баллов за задание: 1

Обозначим через ДЕЛ(n,m)  утверждение «натуральное число n  делится без остатка на натуральное число m  ». Для какого наибольшего натурального числа A  формула

(¬ ДЕЛ (x,A)∧ ДЕ Л(x,15)) → (¬Д ЕЛ(x,18)∨ ¬Д ЕЛ(x,15))

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

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

Решение руками

Обозначим элементы выражения как:

ДЕЛ(x,A) – A

ДЕЛ(x,15) – 15

ДЕЛ(x,18) – 18

Тогда запишем выражение:

(¬A ∧ 15) → (¬18 ∨¬15)

Упростим выражение:

(A ∨¬15) → (¬18 ∨¬15)

A∨ ¬15 ∨¬18

Данное выражение должно равняться 1. Найдем случаи, когда известная часть равна 0, а часть с А - 1, для этого отрицаем известную часть и ищем когда она равна 1:

15∧ 18

Получается, что максимальное значение А равно НОК(18,15) = 90.

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

Для нахождения наибольшего целого A  , при котором выражение

(¬ ДЕЛ (x,A)∧ ДЕ Л(x,15)) → (¬Д ЕЛ(x,18)∨ ¬Д ЕЛ(x,15))

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверять все возможные значения A  от 1  до 999  с помощью цикла for. Для каждого A  перебираем все значения x  от 1  до 1000  . На каждом шаге вычисляем логическое выражение. Если хотя бы для одного x  формула оказывается ложной, текущее A  отбрасываем. Если же выражение выполняется для всех x  , текущее A  является подходящим кандидатом. Так как требуется найти наибольшее A  , программа продолжает перебор до конца диапазона и в итоге выводит максимальное найденное значение.

# перебор возможных значений A от 1 до 999
for a in range(1, 1000):
    # флаг: 0 - выражение выполняется для всех x, 1 - найдено нарушение
    f = 0
    # перебор всех x от 1 до 1000
    for x in range(1, 1001):
        # проверка логического выражения при текущих a и x
        if (((x % a != 0) and (x % 15 == 0)) <= ((x % 18 != 0) or (x % 15 != 0))) == False:
            # если выражение оказалось ложным, фиксируем нарушение и прерываем цикл
            f = 1
            break
    # если выражение истинно для всех x, выводим текущее подходящее A
    if f == 0:
        print(a)

Получился ответ: 90.

Ответ: 90

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

Задача 30#63016Максимум баллов за задание: 1

Обозначим через ДЕЛ(n,m)  утверждение «натуральное число n  делится без остатка на натуральное число m  ». Для какого наименьшего натурального числа A  формула

(¬Д ЕЛ (x,19)∨ ¬Д ЕЛ(x,13)) → ¬ ДЕ Л(x,A)

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

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

Решение руками

Обозначим элементы выражения как:

ДЕЛ(x,A) – A

ДЕЛ(x,13) – 13

ДЕЛ(x,19) – 19

Тогда запишем выражение:

(¬19 ∨ ¬13) → ¬A

Упростим выражение:

(19 ∧13)∨ ¬A

Данное выражение должно равняться 1. Найдем случаи, когда известная часть равна 1, а часть с отрицанием А - 0:

19∧ 13

Получается, что максимальное значение А равно НОК(19,13) = 247.

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

Для нахождения наименьшего целого A  , при котором выражение

(¬Д ЕЛ (x,19)∨ ¬Д ЕЛ(x,13)) → ¬ ДЕ Л(x,A)

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверять все значения A  от 1  до 999  с помощью цикла for. Для каждого A  перебираем все значения x  от  1  до 1000  . На каждом шаге вычисляем логическое выражение. Если хотя бы для одного x  формула оказывается ложной, текущее A  отбрасывается. Если же выражение выполняется для всех x  , текущее A  является подходящим кандидатом. Так как требуется найти наименьшее A  , программа останавливает перебор при первой же удачной проверке и выводит найденное значение.

# перебор возможных значений A от 1 до 999
for a in range(1, 1000):
    # флаг: 0 - выражение выполняется для всех x, 1 - найдено нарушение
    f = 0
    # перебор всех x от 1 до 1000
    for x in range(1, 1001):
        # проверка логического выражения при текущих a и x
        if (((x % 19 != 0) or (x % 13 != 0)) <= (x % a != 0)) == False:
            # если выражение оказалось ложным, фиксируем нарушение и прерываем цикл
            f = 1
            break
    # если выражение истинно для всех x, выводим текущее минимальное A и завершаем программу
    if f == 0:
        print(a)
        break

Получаем ответ: 247.

Ответ: 247

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

Задача 31#63719Максимум баллов за задание: 1

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

На числовой прямой дан отрезок B = [45,55]  . Для какого наибольшего натурального числа A  формула

¬ДЕ Л(x,A) → ((x ∈ B) → ¬Д ЕЛ (x,10))

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

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

Решение руками:

Раскроем импликацию:

                    ----------
Д ЕЛ (x,A )∨ (x ∕∈ B) ∨Д ЕЛ (x,10)

Рассмотрим известную часть. Высказывание (x ∕∈ B )  дает истину на множетсве  (− ∞;45)∪ (55;+∞ )  . Всказываение Д-ЕЛ(x,10)  достаточно рассмотреть только на множестве, где высказываение (x ∕∈ B )  дает ложь; на отрезке [45;55]  все числа, кроме 50, не делятся на 10, то есть дают истину для высказывания ----------
Д ЕЛ (x,10) .

Из этих рассуждений можно сделать вывод, что высказывание Д ЕЛ(x,A)  должно давать истину как минимум для значения 50, чтобы все выражение было тождествено истинна. Тогда, наибольшим A  для которого будет выполняться выражение ДЕЛ (50,A )  является A = 50  .

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

Для нахождения наибольшего целого A  , при котором выражение

¬ ДЕЛ (x,A) → ((x ∈ B) → ¬Д ЕЛ(x,10)),  B = [45,55]

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверить все значения A  от 1  до 299  с помощью цикла for. Для каждого A  перебираем все x  от 1  до 499  . На каждом шаге вычисляем логическое выражение. Если хотя бы для одного x  формула оказывается ложной, текущее     A  отбрасывается. Если же формула истинна для всех x  , обновляем максимальное найденное значение A  . В конце цикла это значение и будет искомым наибольшим A  .

# функция проверяет выполнение выражения при данных x и A
def f(x, A):
    B = [45, 55]
    return (x % A != 0) <= (inn(x, B) <= (x % 10 != 0))

# функция проверяет принадлежность x отрезку B
def inn(x, B):
    return B[0] <= x <= B[1]

# переменная для хранения наибольшего подходящего A
maxim = 0

# перебор возможных значений A от 1 до 299
for A in range(1, 300):
    # флаг: True - выражение выполняется для всех x, False - найдено нарушение
    flag = True
    # перебор всех x от 1 до 499
    for x in range(1, 500):
        # если выражение ложно хотя бы для одного x, фиксируем нарушение
        if not(f(x, A)):
            flag = False
            break
    # если выражение истинно для всех x, обновляем максимум
    if flag:
        maxim = A

# выводим наибольшее подходящее A
print(maxim)

Ответ: 50

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

Задача 32#63834Максимум баллов за задание: 1

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Сколько существует натуральных значений A на отрезке [1;1000], при которых формула

Д ЕЛ(A,7) ∧(Д ЕЛ(240,x) → (¬ ДЕЛ (A,x) → ¬ДЕ Л(780,x)))

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

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

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

Для нахождения количества натуральных значений A  на отрезке [1,1000]  , при которых выражение

Д ЕЛ(A,7) ∧(Д ЕЛ(240,x) → (¬ ДЕЛ (A,x) → ¬ДЕ Л(780,x)))

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверить все значения A  от 1  до 1000  с помощью цикла for. Для каждого A  перебираем все x  от 1  до 10000  . На каждом шаге проверяем логическую формулу. Если хотя бы для одного x  формула оказывается ложной, текущее A  отбрасывается. Если же формула истинна для всех x  , добавляем A  в список подходящих значений. В конце цикла длина списка и будет количеством подходящих A  .

# список для хранения всех подходящих A
cnt = []

# перебор всех натуральных A от 1 до 1000
for a in range(1, 1001):
    # флаг: True - выражение выполняется для всех x, False - хотя бы один случай нарушает
    flag = True
    # перебор всех x от 1 до 10000
    for x in range(1, 10001):
        # если выражение ложно для текущего x, фиксируем нарушение
        if ((a % 7) == 0 and ((240 % x) != 0 or ((a % x) == 0 or (780 % x) != 0))) == False:
            flag = False
            break
    # если выражение истинно для всех x, добавляем A в список
    if flag == True:
        cnt.append(a)

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

Получаем ответ: 2.

Ответ: 2

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

Задача 33#64063Максимум баллов за задание: 1

Обозначим через ДЕЛ(n,m)  утверждение «натуральное число n  делится без остатка на натуральное число m  ». Для какого наименьшего натурального числа A  формула

Д ЕЛ(A,9) ∧(Д ЕЛ(280,x) → (¬ ДЕЛ (A,x) → ¬ДЕ Л(730,x)))

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

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

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

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

Д ЕЛ(A,9) ∧(Д ЕЛ(280,x) → (¬ ДЕЛ (A,x) → ¬ДЕ Л(730,x)))

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверить все значения A  от 1  до 1000  с помощью цикла for. Для каждого A  перебираем все x  от 1  до 10000  и проверяем истинность формулы. Если хотя бы для одного x  формула оказывается ложной, текущее A  отбрасываем. Если же формула истинна для всех x  , сразу выводим это значение A  , так как ищем минимальное.

# перебор всех натуральных A от 1 до 1000
for a in range(1, 1001):
    # флаг: True - выражение выполняется для всех x, False - хотя бы один случай нарушает
    flag = True
    # перебор всех x от 1 до 10000
    for x in range(1, 10001):
        # проверка истинности формулы для текущего x
        if ((a % 9 == 0) and ((280 % x == 0 ) <= ((a % x != 0) <= (730 % x != 0)))) == False:
            # если выражение ложно, фиксируем нарушение
            flag = False
            break
    # если формула истинна для всех x, выводим минимальное A и прекращаем поиск
    if flag == True:
        print(a)
        break

Получается ответ: 90.

Ответ: 90

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

Задача 34#87938Максимум баллов за задание: 1

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа А формула

(¬ ДЕЛ (x,3) → ¬Д ЕЛ (x,7))∨ (x+ A > 120)

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

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

Решение руками:

Раскроем выражение:

Д ЕЛ (x,3)∨ ¬Д ЕЛ (x,7)∨ (x+ A > 120)

Отрицаем известную часть и получаем, что

¬ ДЕЛ (x,3) ∧Д ЕЛ (x,7)

То есть x делится на 7 и не делится на 3. Это числа: 7, 14, 28, 35, 49...

Получаем, что наименьшее А, при котором выражение верно: 7 + A > 120  , значит, A > 113  , то есть A = 114  .

 

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

Решение: Для нахождения наименьшего натурального числа A  , при котором выражение

(¬ ДЕЛ (x,3) → ¬Д ЕЛ (x,7))∨ (x+ A > 120)

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверить все значения A  от 1  до 999  с помощью цикла for. Для каждого A  перебираем все x  от 1  до 999  и проверяем истинность формулы. Если хотя бы для одного x  формула оказывается ложной, текущее A  отбрасываем. Если формула истинна для всех x  , выводим это значение A  , так как ищем минимальное.

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

Получаем ответ: 114.

Ответ: 114

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

Задача 35#87945Максимум баллов за задание: 1

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа А формула

(Д ЕЛ(x,4) → ¬Д ЕЛ(x,6))∨ ДЕЛ (x,A )

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

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

Решение руками:

Раскроем выражение:

¬Д ЕЛ (x,4)∨ ¬Д ЕЛ (x,6)∨ ДЕ Л(x,A)

Отрицаем известную часть:

ДЕ Л(x,4)∧ ДЕЛ (x,6)

Получаем, что число х должно делится и на 4, и на 6. Это числа 12, 24, 36, 48 и так далее.

Значит, минимальное значение A = 12  .

 

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

Для нахождения наибольшего натурального числа A  , при котором выражение

(Д ЕЛ(x,4) → ¬Д ЕЛ(x,6))∨ ДЕЛ (x,A )

тождественно истинно для всех натуральных x  , используем программный перебор. Идея заключается в том, чтобы проверить все значения A  от 1  до 999  с помощью цикла for. Для каждого A  перебираем все x  от 1  до 999  и проверяем истинность формулы. Если хотя бы для одного x  формула оказывается ложной, текущее A  отбрасываем. Если формула истинна для всех x  , обновляем максимальное найденное значение A  . В конце цикла максимальное значение A  будет наибольшим, для которого формула тождественно истинна.

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

Получаем ответ: 12.

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