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

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

Задача 1#63682

Обозначим через Q%m  ==  n  утверждение «Натуральное число Q  при делении на натуральное число m  даёт остаток n  ».

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

(x < A )∨ (y < A) ∨((x∗ y)%3 == 0)∨ (4x+ 2y ⁄= 150)

тождественно истинна (т. е. принимает значение 1  при любых целых неотрицательных значениях переменных   x  , y  )?

Показать ответ и решение
for A in range(1000):
    flag = True
    for x in range(1000):
        for y in range(1000):
            if not((x<A) or (y<A) or ((x*y)%3==0) or (4*x+2*y!=150)):
                flag = False
                break
        if not(flag):
            break
    if flag:
        print(A)
        break

Ответ: 26

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

Задача 2#63672

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

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

¬ ((Т РЕУ Г(x, 6, 10) ≡ (¬(М АК С (x, 7) > 35)))∧ ТР ЕУ Г(x, A, 5))

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

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

Показать ответ и решение
def triangle(a, b, c):
    a, b, c = sorted([a, b, c])
    return a + b > c

for A in range(1, 100):
    flag = True
    for x in range(1, 100):
        if not((triangle(x, 6, 10) == (not(max(x, 7) > 35))) and triangle(x, A, 5)) == False:
            flag = False
    if flag:
        print(A)

Ответ: 31

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

Задача 3#63670

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

Найдите сумму всех натуральных чисел A  , для которых формула

¬(¬ТР ЕУ Г(x, 111, A )∧ ¬Т РЕ УГ (101, x, A ))∨ (x > 200)

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

Показать ответ и решение
def triangle(a, b, c):
    a, b, c = sorted([a, b, c])
    return a + b > c

summa = 0
for A in range(1, 1000):
    flag = True
    for x in range(1, 1000):
        if (not(not triangle(x, 111, A) and not triangle(101, x, A)) or x > 200) == False:
            flag = False
    if flag:
        summa += A
print(summa)

Ответ: 212

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

Задача 4#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  .

Показать ответ и решение
def triangle(a, b, c):
    a, b, c = sorted([a, b, c])
    return a + b > c

counter = 0
for A in range(1, 100):
    flag = True
    for x in range(1, 100):
        if (triangle(x, 20, 45) or triangle(x, 15, 50) or triangle(max(x, 16), 36, A) or (x > 75)) == False:
            flag = False
    if flag:
        counter += 1
print(counter)

Ответ: 12

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

Задача 5#63668

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

Найдите сумму всех натуральных чисел A  , для которых формула

¬(¬ТР ЕУ Г(x, 333, A )∧ ¬Т РЕ УГ (879, x, A ))∨ (x > 600)

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

Показать ответ и решение
def triangle(a, b, c):
    a, b, c = sorted([a, b, c])
    return a + b > c

summa = 0
for A in range(1, 1000):
    flag = True
    for x in range(1, 1000):
        if (not(not triangle(x, 333, A) and not triangle(879, x, A)) or (x > 600)) == False:
            flag = False
    if flag:
        summa += A
print(summa)

Ответ: 1212

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

Задача 6#63667

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

Найдите сумму всех натуральных чисел A  , для которых формула

¬(¬Т РЕ УГ (x, 546, A) ∧¬ ТР ЕУ Г(777, x, A ))∨(x > 1000)

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

Показать ответ и решение
def triangle(a, b, c):
    a, b, c = sorted([a, b, c])
    return a + b > c

summa = 0
for A in range(1, 1000):
    flag = True
    for x in range(1, 1000):
        if (not(not triangle(x, 546, A) and not triangle(777, x, A)) or x > 1000) == False:
            flag = False
    if flag:
        summa += A
print(summa)

Ответ: 1323

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

Задача 7#63666

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

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

ТР ЕУ Г(x, 10, 28)∨ Т РЕ УГ (x, 14, 56 )∨ ТР ЕУ Г(М А КС (x, 20), 25, A )∨ (x > 60)

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

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

Показать ответ и решение
def triangle(a, b, c):
    a, b, c = sorted([a, b, c])
    return a + b > c

counter = 0
for A in range(1, 100):
    flag = True
    for x in range(1, 100):
        if (triangle(x, 10, 28) or triangle(x, 14, 56) or triangle(max(x, 20), 25, A) or (x > 60)) == False:
            flag = False
    if flag:
        counter += 1
print(counter)

Ответ: 27

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

Задача 8#63665

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

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

ТР ЕУ Г(x, 25, 36)∨ Т РЕ УГ (x, 28, 55 )∨ ТР ЕУ Г(М А КС (x, 20), 40, A )∨ (x > 80)

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

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

Показать ответ и решение
def triangle(a, b, c):
    a, b, c = sorted([a, b, c])
    return a + b > c

counter = 0
for A in range(1, 100):
    flag = True
    for x in range(1, 100):
        if (triangle(x, 25, 36) or triangle(x, 28, 55) or triangle(max(x, 20), 40, A) or (x > 80)) == False:
            flag = False
    if flag:
        counter += 1
print(counter)

Ответ: 39

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

Задача 9#63126

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

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

¬((Т РЕ У Г(x, 12, 20) ≡ (¬(М А КС (x, 5 ) > 28)))∧ Т РЕ УГ (x, A, 3))

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

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

Показать ответ и решение
def triangle(a, b, c):
    a, b, c = sorted([a, b, c])
    return a + b > c

for A in range(1, 100):
    flag = True
    for x in range(1, 100):
        if not((triangle(x, 12, 20) == (not(max(x, 5) > 28))) and triangle(x, A, 3)) == False:
            flag = False
    if flag:
        print(A)

Ответ: 6

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

Задача 10#63124

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

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

¬((Т РЕ У Г(x, 11, 18) ≡ (¬(М А КС (x, 5 ) > 15)))∧ Т РЕ УГ (x, A, 5))

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

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

Показать ответ и решение
def triangle(a, b, c):
    a, b, c = sorted([a, b, c])
    return a + b > c

for A in range(1, 100):
    flag = True
    for x in range(1, 100):
        if not((triangle(x, 11, 18) == (not(max(x, 5) > 15))) and triangle(x, A, 5)) == False:
            flag = False
    if flag:
        print(A)

Ответ: 24

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

Задача 11#63122

Введём два утверждения. ОСТРОУГ(a, b, c) – «существует остроугольный треугольник со сторонами a, b и c». ТУПОУГ(a, b, c) – «существует тупоугольный треугольник со сторонами a, b и c». Аргументы a, b и c в каждой из функций подаются в неё по возрастанию, иначе функция возвращает ложное значение.

Для какой минимальной длины отрезка A  формула

 ------------------  -----------------
(ОС ТРО УГ(39,80,x)∧ ТУП ОУ Г(65,72,x)) → (((x > 80)∧(x < 119)) → (x ∈ A ))

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

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

Раскрываем импликацию и упрощаем выражение, получаем:

О СТР ОУ Г(39,80,x)∨ ТУ ПО УГ(65,72,x)∨ (x ≤ 80)∨ (x ≥ 119)∨ (x ∈ A)

«Враги» хотят, чтобы выражение было ложно:

(
||О СТ РОУ Г(39,80,x) = 0
||||
|||{Т УП ОУ Г(65,72,x) = 0

|||x > 80
||||x < 119
||(
 x ∕∈ A

Разберёмся, когда первый треугольник не будет остроугольным и когда второй треугольник не будет тупоугольным. При x ≤ 41  или x ≥ 119  треугольник (39, 80, x) не существует. При x ≤ 7  или x ≥ 137  треугольник (65, 72, x) не существует. По условию в функции ОСТРОУГ(a, b, c) и ТУПОУГ(a, b, c) подаются аргументы по возрастанию, поэтому x будет являться наибольшей стороной.

Треугольник является остроугольным, когда a2 + b2 < c2  и является тупоугольным при a2 + b2 > c2  . Таким образом, получаем, что для (39,80,x)  остроугольный треугольник не существует при    √ --2----2
x ≥  39 + 80  , то есть при x ≥ 89  . Аналогично для (65,72,x )  , тупоугольный треугольник не существует при     √--------
x ≤  652 +722  , то есть при x ≤ 97  .

Преобразуем систему в соответствии с нашими высказываниями.

(
|| x ≥ 89
||||
|||{ x ≤ 97     ({
           ⇒   x ∈ [89;97]
||| x > 80     ( x ∕∈ A
|||| x < 119
||(
  x∈∕A

«Друзья» хотят победить врагов, поэтому им нужно, чтобы следующая система была истинной при всех x  и A  .

⌊
 x ∕∈ [89;97]
⌈
 x ∈ A

Это обеспечивается тогда, когда [89,97] ⊂ A  . Следовательно, минимальная длина A  обеспечивается, когда A = [89,97]  . Таким образом, длина A  равна 8  .

Ответ: 8

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

Задача 12#56882

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

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

¬ ДЕ Л(xy, A) ∨(y >  4095)∨ (x > 2y + 1 )∨ ¬Д ЕЛ (y, 2)∨ Д ЕЛ (x, 2)

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

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

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

(
|||| Д ЕЛ (xy, A )
|||| y ≤ 4095
|{
| x ≤ 2⋅y+ 1
||||
|||| Д ЕЛ (y, 2)
( ¬Д Е Л(x, 2)

Исходя из этого уменьшим поиск x,y  по нечетным и четным значениям соответственно:

Решение 1  (прогой, работает пару минут):

for A in range(1, 10000):
    flag = True
    for x in range(5, (4095 + 1)*2 + 1, 2):
        for y in range(2, 4095 + 1, 2):
            if x*y % A == 0:
                flag = False
                break
        if not flag:
            break
    if flag:
        print(A)
        break

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

Повторим, чего хотят враги:

(|
|||| Д ЕЛ (xy, A )
|||| y ≤ 4095
{
|| x ≤ 2⋅y+ 1
|||| Д ЕЛ (y, 2)
|||(
  ¬Д Е Л(y, 2)

Друзья хотят, чтобы выполнялось условие ¬Д Е Л(xy, A)  при всех хотелках врага. Соответственно, нужно понять, когда же произведение xy  не будет делиться на A  .

Исходя из хотелок врага мы понимаем, что будут подбираться такие xy  , чтобы они делились на A  . Это значит, что A  будет содержать внутри себя делители хотя бы одного набора xy  . Наша задача — предоставить такое A  , чтобы при любом произведении xy  там не было такого делителя, что и в A  .

Заметим, что y  — четные числа. Значит, в самых больших y  будет содержаться максимум 211  умноженное на что-то. Тогда, чтобы минимизировать A  возьмем A = 212  (т.к. 2  в степени что-то будет явно меньше, чем числа большие в степени что-то).

Ответ: 4096

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

Задача 13#56316

На числовой прямой даны два отрезка:

P = [12;56]  и Q = [30;85]

Укажите наименьшую длину промежутка А, при котором формула

          -------
((x ∈ P ) → (x ∈ Q))∨ (x ∈ A)

тождественно истинна при любых целых значениях переменной x.

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

PIC

 

Ответ: 26

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

Задача 14#47183

Элементами множества A  являются натуральные числа, причем

A ⊂ {1,2,3,4,5,6,7,8,9}

Известно, что выражение

(x%2 ==  0)∨(x ∈ A)∨ (  существует y ∈ A  такой, что (x ⋅y)%15 ==  0)

истинно (т.е. принимает значение 1  ) для всех x ∈ {1,2,3,4,5,6,7,8,9}

Определите минимальную сумму элементов множества A  .

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

Максимальный размер множества A  : A = {1,2,3,4,5,6,7,8,9} . Будем выкидывать из него элементы, чтобы найти минимальную сумму.

Очевидно, что при любом чётном x  первая скобка всегда будет истинной, и неважно, входит x  в множество  A  или нет. Значит, из множества A  можно убрать все чётные элементы, то есть A = {1,3,5,7,9}

При x = 3  или x = 9  в качестве y  можно взять число 5  , тогда будет верна третья скобка, и неважно, входит x  в множество A  или нет. Значит, из множества A  можно убрать элементы 3  и 9  , то есть A = {1,5,7}

Тогда минимальная сумма элементов A  равна: 1 +5 + 7 = 13  .

 

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

a = []
for x in range(1, 10):
    if ((x % 2 == 0) or (x in a) or (any(y*x % 15 == 0 for y in a))) == 0:
        a.append(x)
print(a)

В данной задаче стандартное решение программой ошибочно, поскольку оно не учитывает, что, если в множестве     A  будет элемент 5  , то элементы 3  и 9  можно не добавлять в множество, поскольку они оба в произведении с 5  кратны 15  . Тогда итоговая сумма будет меньше той, что получила программа.

Ответ: 13

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

Задача 15#43475

На числовой прямой даны два отрезка:

P = [2212598,7215678]  и Q = [4200000,10202053]  .

Какова наименьшая возможная длина отрезка A, что логическое выражение

¬ (¬ (x ∈ A)∧ (x ∈ P ))∨(x ∈ Q)

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

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

Выполняется как и любой стандартный прототип на отрезки. Получается довольно легко: возьмите стандартный прототип и увеличьте границы отрезков в 105  раз.

Система для врагов:

(
||x ∕∈ A
|{
|x ∈ P
||(
 x ∕∈ Q

Враги мечтают, чтобы x ∈ [2212598;4200000)  и при этом они были не в A.

Друзья хотят, чтобы все эти иксы были в A, тогда минимальный отрезок A = [2212598;4200000]  . Его длина равна 1987402  .

 

Ответ: 1987402

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

Задача 16#41968

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

((x− 10 < A) → (y+ 28 ≥ 4A ))∨(x + y ⁄= 17)

тождественно истинна, (т. е. принимает значение 1  ) при любых целых положительных значениях переменных   x  и y  ?

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

Решение аналитикой

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

(
||| x− 10 < A
{
|| y+ 28 < 4A
|( x+ y = 17

Друзья говорят:

(
||| A > x − 10
{
|| A ≤ 0.25y + 7
|( x + y = 17

Выразим x  : x = 17− y  . Тогда A > 17 − y − 10 = A > 7 − y

(
{ A > 7− y
(
  A ≤ 0.25y + 7

Рассмотрим, что происходит при разных y  .

При y = 1  : A > 6,A ≤ 7.25  ;

При y = 2  : A > 5,A ≤ 7.5

...

При y = 7  : A > 0,A ≤ 8.75  .

Тогда наибольшее A = 7  .

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

for A in range(1000):
    p = True
    for x in range(1, 1000):
        for y in range(1, 1000):
            f = ((x - 10 < A) <= (y + 28 >= 4 * A)) or (x + y != 17)
            if f == False:
                p = False
                break
        if p == False:
            break
    if p == True:
        print(A)

Ответ: 7

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

Задача 17#41967

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

(6x + 8y ⁄= 128)∨ (x < y) ∨(3y < A )

тождественно истинна, (т. е. принимает значение 1  ) при любых целых положительных значениях переменных   x  и y  ?

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

Решение аналитикой

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

(
||| 6x +8y = 128
{
|| x ≥ y
|( 3y ≥ A

Все возможные x  и y  , где x ≥ y  :

|---|--|
|x--|y-|
|12 |7 |
|---|--|
|16-|4-|
-20--1-|

Тогда друзья говорят: 3y < A  . Максимальное y = 7  , значит, A > 21  . Наименьшее A = 22  .

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

for A in range(1000):
    p = True
    for x in range(1, 1000):
        for y in range(1, 1000):
            f = (6*x + 8*y != 128) or (x < y) or (3*y < A)
            if f == False:
                p = False
                break
        if p == False:
            break
    if p == True:
        print(A)
        break

Ответ: 22

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

Задача 18#41965

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

(x ⋅y > A )∨ (27 > y)∨ (y− 20 ≥ A )∨ (x < 8)

тождественно истинна, (т. е. принимает значение 1  ) при любых положительных значениях переменных x  и y  ?

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

Решение аналитикой

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

( [
|||   x⋅y ≤ A
||{  y− 20 < A

|||| 27 ≤ y
|( x ≥ 8

Тогда друзья говорят:

( [
|||   A < x⋅y
||{  A ≤ y− 20

|||| y ≥ 27
|( x ≥ 8

Наименьшее x = 8  , y = 27  . Тогда

⌊⌈ A ≤ 7
 A < 216

Наибольшее A = 215  .

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

def f(a):
    for x in range(1, 1000):
        for y in range(1, 1000):
            if ((x * y > a) or (27 > y) or ((y - 20) >= a) or (x < 8)) == 0:
                return 0
    return 1

for a in range(1000):
    if f(a):
        print(a)

Ответ: 215

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

Задача 19#41963

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

(A < x + y)∨ (x ≥ 48)∨ (y > 2)

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

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

Решение аналитикой

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

(
||| A ≥ x+ y
{
|| x < 48
|( y ≤ 2

Тогда друзья говорят: A < x + y  . Наименьшее x = 1  , y = 1  . Тогда A < 2  . Максимальное возможное A = 1  .

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

  def f(a):
      for x in range(1, 1000):
          for y in range(1, 1000):
              if ((a < x + y) or (x >= 48) or (y > 2)) == 0:
                  return 0
      return 1

  for a in range(1000):
      if f(a):
          print(a)

Ответ: 1

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

Задача 20#41960

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

(x > 16) ∨(y > 25) ∨(A > x +y)

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

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

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

(
|||{ x ≤ 16
  y ≤ 25
|||
( A ≤ x+ y

Тогда друзья говорят: A > x + y  . Наибольшее x = 16  , y = 25  . Тогда A > 41  . Наименьшее A = 42  .

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