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

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

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

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

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

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

¬ ДЕ Л(x, А) → (¬Д ЕЛ (x, 21)∧ ¬Д ЕЛ (x, 35))
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?
Показать ответ и решение

Решение 1 (руками)

1. Для того чтобы формула была тождественно истинна, необходимо, чтобы при ¬Д ЕЛ (x,A) = 1  (то есть x  не делится на A  ), выполнялось условие ¬Д ЕЛ (x,21) ∧¬ ДЕ Л(x,35)  (то есть x  не делится на 21 и 35).

2. Таким образом, любое число x  , которое не делится на A  , не должно делиться на 21 и 35 одновременно. Это означает, что все числа x  , которые делятся на 21 или на 35, должны делиться на A  . То есть, A  должно быть делителем чисел, кратных 21 или 35.

3. Найдем наименьшее общее кратное (НОК) чисел 21 и 35:

НО К(21,35) = НО К(3 ⋅7,5 ⋅7) = 3⋅5 ⋅7 = 105.

Это означает, что все числа, которые делятся на 21 или на 35, также делятся на 105.

4. Следовательно, максимальное значение A  , которое делит все числа, кратные 21 или 35, является наибольшим делителем 105. Наибольший такой делитель — это 7  , так как 7  является наибольшим общим делителем чисел 21 и 35.

Ответ: A = 7  .

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

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

¬Д ЕЛ (x,A ) → (Д ЕЛ(x,6) → ¬ДЕ Л(x,9))

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

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

Ответ: 7

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

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

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

¬Д Е Л(x,A) → (ДЕ Л (x,6) → ¬Д ЕЛ (x,9))

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

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

Решение 1 (ручками)

Составим систему для тех случаев, когда выражение тождественно ложно:

(  .
||||x ||.. A
{  ..
||x . 6 = 2 ⋅3
||(x ... 9 = 3 ⋅3

 

Отсюда следует, что x  обязательно должен делиться на НОК(6,9) = 18  .

Нам требуется, чтобы любой x  , кратный 18  , делится на A  , то есть A  — делитель числа 18  . Максимальное    A  равно максимальному делителю числа 18  , то есть 18  .

 

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

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

¬Д Е Л(x,A) → (ДЕ Л (x,6) → ¬Д ЕЛ (x,9))

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

# функция проверяет выполнение выражения для конкретного x и A
def f(x, A):
    return (x % A != 0) <= ((x % 6 == 0) <= (x % 9 != 0))

# перебор возможных значений A в убывающем порядке
for A in range(10000, 0, -1):
    met_false = False  # флаг: False - выражение выполняется для всех x, True - хотя бы один x нарушает
    for x in range(1000):  # перебор натуральных x
        # если выражение ложно для текущего x
        if not(f(x, A)):
            met_false = True  # отмечаем нарушение
    # если выражение истинно для всех x
    if not(met_false):
        print(A)  # выводим наибольшее подходящее A
        break  # прекращаем поиск после нахождения первого подходящего A

Ответ: 18

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

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

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

¬Д ЕЛ (x,A) → (¬Д ЕЛ (x,21)∧ ¬Д Е Л(x,35))

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

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

Решение 1 (ручками)

Составим систему для тех случаев, когда выражение тождественно ложно:

(   .
|||| x ||.. A
{ ⌊  ..
|| |x . 21 = 7 ⋅3
||( ⌈  ..
   x . 35 = 7 ⋅5

Отсюда следует, что x  обязательно должен делиться на 7  .

Нам требуется взять наибольшее A  , чтобы система была всегда ложна, то есть при любом x  множество решений системы пусто. Для этого достаточно взять A = 7  . Заметим, что если в качестве A  взять, например, 14  , то система будет истина, если взять x = 21  .

 

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

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

¬Д ЕЛ (x,A) → (¬Д ЕЛ (x,21)∧ ¬Д Е Л(x,35))

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

# функция проверяет выполнение выражения для конкретного x и A
def f(x, A):
    return (x % A != 0) <= ((x % 21 != 0) and (x % 35 != 0))

# перебор возможных значений A в убывающем порядке
for A in range(10000, 0, -1):
    met_false = False  # флаг: False - выражение выполняется для всех x, True - хотя бы один x нарушает
    for x in range(1000):  # перебор натуральных x
        # если выражение ложно для текущего x
        if not(f(x, A)):
            met_false = True  # отмечаем нарушение
    # если выражение истинно для всех x
    if not(met_false):
        print(A)  # выводим наибольшее подходящее A
        break  # прекращаем поиск после нахождения первого подходящего A

Ответ: 7

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

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

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

(Д ЕЛ (x, 34) ∧¬ Д ЕЛ (x, 51)) → (¬Д ЕЛ (x, A )∨ Д ЕЛ (x, 51 ))
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?
Показать ответ и решение

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

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

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

# функция проверяет выполнение выражения для конкретного x и A
def f(x, A):
    return ((x % 34 == 0) and (x % 51 != 0)) <= ((x % A != 0) or (x % 51 == 0))

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

Ответ: 3

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

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

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

¬Д ЕЛ (x, А) → (Д ЕЛ (x, 6) → ¬ ДЕЛ (x, 24))

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

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

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

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

ДЕЛ(x,A) – A

ДЕЛ(x,6) – 6

ДЕЛ(x,24) – 24

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

¬A →  (6 → ¬24 )

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

A∨ ¬6 ∨ ¬24

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

6∧ 24

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

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

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

¬ДЕ Л(x,A) → (ДЕЛ (x,6) → ¬Д ЕЛ (x,24))

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

# функция проверяет выполнение выражения для конкретного x и A
def f(a):
    for x in range(1, 1000):
        # если формула ложна для текущего x, возвращаем False
        if ((x % a != 0) <= ((x % 6 == 0) <= (x % 24 != 0))) == 0:
            return False
    return True  # если формула истинна для всех x

# перебор возможных значений A от 1 до 9999
for a in range(1, 10000):
    if f(a):
        print(a)  # выводим найденное подходящее A

Ответ: 24

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

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

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

Для какого наибольшего натурального числа A формула

Д ЕЛ (70,A) ∧(Д ЕЛ(x,28) → (¬ ДЕЛ (x,A) → ¬ДЕ Л(x,21)))

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

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

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

Д ЕЛ (70,A) ∧(Д ЕЛ(x,28) → (¬ ДЕЛ (x,A) → ¬ДЕ Л(x,21)))

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

# перебор возможных значений A от 1 до 9999
for A in range(1, 10000):
    flag = True  # флаг: True - выражение выполняется для всех x, False - хотя бы один x нарушает
    for x in range(1, 100000):  # перебор натуральных x
        # вычисляем логическое выражение для текущего x и A
        f = (70 % A == 0) and ((x % 28 == 0) <= ((x % A != 0) <= (x % 21 != 0)))
        if f == False:  # если формула ложна
            flag = False  # отмечаем нарушение
            break  # прекращаем проверку текущего A
    if flag:
        maxim = A  # сохраняем текущее подходящее A
# выводим наибольшее подходящее A
print(maxim)

Ответ: 14

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

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

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

ДЕ Л(x, А) → (¬Д ЕЛ (x, 21)∨ ДЕ Л (x, 35))

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

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

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

ДЕ Л(x, A) → (¬Д ЕЛ (x, 21)∨ ДЕ Л (x, 35))

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

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

Ответ: 5

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

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

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

((ДЕ Л(x,A)∧ ДЕ Л(x,36)) → Д ЕЛ (x,324))∧ (A > 100)

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

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

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

((ДЕ Л(x,A)∧ ДЕ Л(x,36)) → Д ЕЛ (x,324))∧ (A > 100)

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

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

Ответ: 162

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

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

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

(¬Д Е Л(x, A) ∧¬ ДЕ Л(x, 6)) → ¬ ДЕ Л (x, 3)

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

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

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

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

ДЕЛ(x,A) – A

ДЕЛ(x,3) – 3

ДЕЛ(x,6) – 6

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

(¬A ∧ ¬6) → ¬3

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

A ∨6 ∨¬3

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

¬6∧ 3

Получается, что максимальное значение А равно НОД(6,3) = 3.

 

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

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

(¬ДЕ Л(x,A)∧ ¬Д ЕЛ (x,6)) → ¬ДЕ Л(x,3)

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

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

Ответ: 3

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

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

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

Д ЕЛ (70,A) ∧(¬Д ЕЛ (x,A ) → (Д ЕЛ(x,18) → ¬ДЕ Л(x,42)))

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

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

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

Д ЕЛ (70,A) ∧(¬Д ЕЛ (x,A ) → (Д ЕЛ(x,18) → ¬ДЕ Л(x,42)))

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

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

Ответ: 14

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

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

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

Д ЕЛ(x,A) → (¬Д ЕЛ(x,21)∨ ДЕ Л(x,35))

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

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

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

Д ЕЛ(x,A) → (¬Д ЕЛ(x,21)∨ ДЕ Л(x,35))

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

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

Ответ: 5

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

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

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

¬Д ЕЛ (x,А) → (ДЕ Л (x,6) → ¬Д Е Л(x,9))

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

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

Решение 1 (ручками)

Рассмотрим формулу:

¬Д ЕЛ (x,A ) → (Д ЕЛ(x,6) → ¬ДЕ Л(x,9))

Нам нужно найти наибольшее A  , при котором формула всегда истинна для любого x  .

Формула утверждает, что если x  не делится на A  , то если x  делится на 6, то x  не должно делиться на 9. Чтобы формула была истинной, необходимо, чтобы A  было таким, что при делении на 6 x  не делится на 9. Это возможно, если A  — наименьшее общее кратное чисел 6 и 9:

НО К(6,9) = 18

Таким образом, наибольшее A = 18  .

Ответ: A = 18  .

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

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

¬Д ЕЛ (x,A ) → (Д ЕЛ(x,6) → ¬ДЕ Л(x,9))

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

# функция проверяет выполнение выражения для конкретного x и A
def f(x, A):
    return (x % A != 0) <= ((x % 6 == 0) <= (x % 9 != 0))

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

Ответ: 18

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

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

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

¬ ДЕ Л(x, А) → (¬Д ЕЛ (x, 21)∧ ¬Д ЕЛ (x, 35))

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

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

Решение 1 (ручками)

Рассмотрим формулу:

¬Д ЕЛ(x,A) → (¬Д ЕЛ(x,21)∧ ¬Д ЕЛ(x,35))

Для того чтобы формула была всегда истинной, необходимо, чтобы если x  не делится на A  , то одновременно выполнялись условия, что x  не делится на 21 и на 35.

Из условий ¬ДЕ Л(x,21)  и ¬ДЕ Л(x,35)  следует, что x  не может делиться на 7, так как 21 и 35 имеют общий делитель 7.

Следовательно, A  должно быть таким числом, что x  не может делиться на 7, то есть наибольшее возможное значение A  — это 7.

Таким образом, наибольшее A  , при котором формула всегда истинна, равно 7.

Ответ: A = 7  .

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

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

¬Д ЕЛ(x,A) → (¬Д ЕЛ(x,21)∧ ¬Д ЕЛ(x,35))

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

# функция проверяет выполнение выражения для конкретного x и A
def f(a):
    for x in range(1, 1000):
        # проверяем истинность формулы для текущего x
        if not((x % a != 0) <= ((x % 21 != 0) and (x % 35 != 0))):
            return False
    return True

# перебор возможных значений A от 1 до 999
for a in range(1, 1000):
    # если формула истинна для всех x, выводим A
    if f(a):
        print(a)

Ответ: 7

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

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

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

ДЕ Л(x, А) → (¬Д ЕЛ (x, 21)∨ ДЕ Л (x, 35))

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

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

Напишем, чего хотят враги:

(|  ..
|||{ x. A
  x ... 21
|||
|( x|| ... 35

Отсюда следует, что x должен делиться на 3  и 7  (3⋅7 = 21  ) и не должен делиться на 5  (7 ⋅5 = 35  ).

Друзья же хотят помешать врагам, и для этого они берут, согласно условию, наименьшее A  , чтобы их система была всегда ложна, то есть при любом x  множество решений системы пусто. Для этого достаточно взять A = 5  : все иксы, которые подходят врагам делятся на 7  и 3  , а раз они делятся на A = 5  , то   ..
x . 35  .

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

 

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

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

Д ЕЛ(x,A) → (¬Д ЕЛ(x,21)∨ ДЕ Л(x,35))

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

# функция проверяет выполнение формулы для конкретного x и A
def f(x, A):
    # проверяем, выполняется ли импликация для данного x и A
    return (x % A == 0) <= ((x % 21 != 0) or (x % 35 == 0))

# перебор возможных значений A от 1 до 9999
for A in range(1, 10000):
    flag = True
    # проверка формулы для всех x от 0 до 999
    for x in range(1000):
        # если формула ложна для текущего x, отбрасываем A
        if not f(x, A):
            flag = False
    # если формула выполняется для всех x, выводим наименьшее подходящее A
    if flag:
        print(A)
        break

Ответ: 5

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

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

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

(¬Д ЕЛ (x, А )∧ Д ЕЛ (x, 6)) → ¬Д ЕЛ (x, 3)
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?
Показать ответ и решение

Решение 1 (ручками)

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

ДЕЛ(x,A) – A

ДЕЛ(x,3) – 3

ДЕЛ(x,6) – 6

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

(¬A ∧6) → ¬3

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

A ∨ ¬6∨ ¬3

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

6 ∧3

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

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

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

(¬Д ЕЛ (x,A )∧ ДЕЛ (x,6)) → ¬Д ЕЛ (x,3)

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

# функция проверяет выполнение формулы для конкретного x и A
def f(x, A):
    # проверяем импликацию для данного x и A
    return (x % A != 0) <= ((x % 6 == 0) <= (x % 3 != 0))

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

Ответ: 6

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

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

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

(¬Д Е Л(x, 19)∨ ¬Д ЕЛ (x, 15)) → ¬Д ЕЛ (x, A )
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?
Показать ответ и решение

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

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

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

# функция проверяет выполнение формулы для конкретного A
def f(a):
    # перебор всех x от 1 до 999
    for x in range(1, 1000):
        # проверка истинности импликации для текущего x и a
        if (((x % 19 != 0) or (x % 15 != 0)) <= (x % a != 0)) == 0:
            # если формула ложна хотя бы для одного x, возвращаем False
            return 0
    # если формула истинна для всех x, возвращаем True
    return 1

# перебор возможных значений A от 1 до 999
for a in range(1, 1000):
    # если формула выполняется для всех x, выводим найденное минимальное A
    if f(a):
        print(a)
        break

Ответ: 285

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

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

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

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

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

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

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

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

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

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

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

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

Ответ: 3

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

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

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

((Д ЕЛ (x, A ) ∧ ДЕ Л (x, 36)) → ДЕ Л (x, 324))∧ (A > 100)

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

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

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

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

((ДЕ Л(x,A)∧ ДЕ Л(x,36)) → Д ЕЛ (x,324))∧ (A > 100)

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

# функция проверки делимости
def d(x, y):
    return x % y == 0

# перебор возможных значений A от 1 до 999
for a in range(1, 1000):
    # флаг: True - формула выполняется для всех x, False - хотя бы один x нарушает
    flag = True
    # перебор всех x от 1 до 9999
    for x in range(1, 10000):
        # проверка истинности импликации с дополнительным условием для текущего x и A
        if (((d(x, a) and d(x, 36)) <= d(x, 324)) and (a > 100)) == 0:
            flag = False
            break
    # если формула истинна для всех x, выводим найденное минимальное A и прекращаем перебор
    if flag:
        print(a)
        break

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

Ответ: 162

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

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

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

ДЕ Л(45, A) ∧((Д ЕЛ (x, 30) ∧Д ЕЛ (x, 12)) → Д ЕЛ (x, A ))

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

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

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

ДЕ Л(45,A)∧ ((ДЕЛ (x,30) ∧Д ЕЛ(x,12)) → Д ЕЛ (x,A ))

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

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

Ответ: 15

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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