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

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

Задача 1#63718

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

На числовой прямой дан промежуток A  и множество S = {25,28,45,48,57,67} .

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

                                                                -------
((¬Д ЕЛ(x,5)∧ (y ∕∈ S)) → ((x > 5) → (y > 13)))∨ (x⋅y ≤ 67)∨(x ∕∈ A)∨ (y ∈ A)

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

Показать ответ и решение
def inn(x, A):
    return A[0] <= x <= A[1]

def f(x, y, A):
    S = {25, 28, 45, 48, 57, 67}
    return (((x % 5 != 0) and (not y in S)) <= ((x > 5) <= (y > 13))) \
        or (x * y <= 67) or (not inn(x, A)) or (not inn(y, A))

n = 5
ans = 0
for a in range(1 * n, 50 * n):
    for b in range(a, 50 * n + 1):  # + 1 чтобы проверить саму точку b
        A = [a / n, b / n]
        flag = True
        for x in range(1, 100):
            for y in range(1, 15):
                if not f(x, y, A):
                    flag = False
                    break
            if not flag:
                break
        if flag:
            ans = max(ans, A[1] - A[0])
print(ans)

Видим, что программа выдаёт результат 36.8 – это значит, что ответ стремится к 37.

Ответ: 37

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

Задача 2#63717

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

На числовой прямой даны отрезки P = [13,25]  , Q = [18,35]  . Найдите максимальную длину промежутка A  , такого что выражение

                             ------- -------            -------
(¬ (Д ЕЛ (x,5.5)) ∧¬ (Д ЕЛ (x,4))∨ (x ∈ Q) ∨(x ∈ A ))∧((x ∈ P )∨ (x ∈ A))

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

Показать ответ и решение
def inn(x, A):
    return A[0] <= x <= A[1]
def f(x, A):
    P = [13, 25]
    Q = [18, 35]
    return (((x % 5.5 != 0) and (x % 4 != 0) or (not inn(x, Q)) \
         or (not inn(x, A))) and (inn(x, P) or (not inn(x, A))))
ans, n = 0, 15
borders = [0 ,0]
for a in range(1 * n, 70 * n):
    for b in range(a, 70 * n):
        A = [a / n, b / n]
        flag = True
        for x in range(1, 70 * n):  # только натуральные
            if not f(x, A):
                flag = False
                break
        if flag:
            if A[1] - A[0] > ans:
                ans = A[1] - A[0]
                borders[0] = A[0]
                borders[1] = A[1]
print(borders)
print(ans)

Видим, что программа вывела промежуток [12.067,19.934]  и его длину ≈ 7.867  .

Значит, ответом является промежуток с дробными границами, левая граница которого стремится к 12  , а правая к      20  , тогда длина стремится к 8  .

Ответ: 8

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

Задача 3#63693

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

Так, например, 14&5 = 1110 &0101 = 0100  = 4
           2     2      2  .

На числовой прямой дан отрезок Q = [8;48]  и множество S = {43,23,76} .

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

(¬ДЕ Л(x,5)∧ (x ∕∈ S)) → (((|x − 40| ≤ 11) → (x ∈ Q))∨ (x&A = 0))

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

Показать ответ и решение
def inn(x, A):
    return A[0] <= x <= A[1]

def f(x, A):
    S = {43, 23, 76}
    Q = [8, 48]
    return (((x % 5 != 0) and (not (x in S))) <=
    (((abs(x - 40) <= 11) <= (inn(x, Q))) or (x & A == 0)))

for A in range(1, 1000):
    flag = True
    for x in range(-100, 1000):
        if not f(x, A):
            flag = False
            break
    if flag:
        print(A)
        break

Ответ: 4

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

Задача 4#63692

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

На числовой прямой даны отрезки Q = [16;64]  и P = [48,96]  .

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

ДЕ Л(x,10)∨ (x ∕∈ Q)∨ (x&A = 0) ∨((x ∈ P ) → (|x− 30| ≥ 20))

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

Показать ответ и решение
def f(x, A):
    Q = [16, 64]
    P = [48, 96]
    return ((x%10 == 0) or (not inn(x, Q)) or (x & A == 0) or ((inn(x, P)) <= (abs(x - 30) >= 20)))

def inn(x, P):
    return P[0] <= x <= P[1]

for A in range(1, 1000):
    flag = True
    for x in range(-1000, 1000):
        if not f(x, A):
            flag = False
            break
    if flag:
        print(A)

Ответ: 2

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

Задача 5#63686

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

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

(Д ЕЛ (x,5)∧ Д ЕЛ(x,11)) → ((x&17 ⁄= 0)∨ (x &64 = 0) ∨(A ⋅x ≤ 190387))

тождественно истинно, то есть принимает значение 1  при любом целом x ≤ 1000  .

Показать ответ и решение
def f(x):
    return (((x % 5 == 0) and (x % 11 == 0)) <= \
        (((x & 17 != 0) or (x & 64 == 0)) or (A * x <= 190387)))

ans = 0
for A in range(1, 1000):
    flag = True
    for x in range(1, 1001):
        if not f(x):
            flag = False
            break
    if flag:
        ans = max(ans, A)
print(ans)

Ответ: 576

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

Задача 6#63011

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

(xy > A) ∧(x > y)∧(x < 8)

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

Показать ответ и решение
for a in range(1, 1000):
    f = 0
    for x in range(1, 1001):
        for y in range(1, 1000):
            if ((x * y > a) and (x > y) and (x < 8)) == True:
                f = 1
                break
    if f == 0:
        print(a)
        break



Ответ: 42

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

Задача 7#61631

На числовой прямой дан отрезок Q = [30;51]  . Обозначим через ДЕЛ(n,m)  утверждение «натуральное число n  делится без остатка на натуральное число m  ». Обозначим k&p  , обозначающее поразрядную конъюнкцию k  и  p  (логическое «И» между соответствующими битами двоичной записи). Определите наименьшее натуральное число  A  , такое что выражение

(¬Д ЕЛ(x,5)∧ x∈∕25,50,55) → (((|x − 41| ≤ 11) → (x ∈ Q )) ∨(x&A ⁄= 0))

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

Показать ответ и решение
for a in range(1,1000):#Перебираем значения а
    f = 0 #Изначально флаг опущен
    for x in range(10000): #Перебираем для каждого а значения x
        if (((x % 5 != 0) and (x not in [25,50,55])) <= (((abs(x-41) <= 11) <= (30 <= x <= 51)) or (x&a!=0))) == False:
            f = 1 #Если условие выполнилось,значит данное а нам не подходит. Поднимаем флаг, прерываем работу цикла и переходим к следующему значению а
            break
    if f == 0:# Если флаг не был поднят,значит данное а нам подходит
        print(a)
        break

Ответ: 4

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

Задача 8#60315

Обозначим через УГОЛ(a, b, c) утверждение «значения чисел a, b, c являются углами невырожденного треугольника».Для какого наименьшего натурального числа А формула:

УГ ОЛ (A, 15,x + 25) ≡ УГ ОЛ (x,A, 60) ∧¬ (A + 10 < 100)

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

Показать ответ и решение
def angle(a,b,c):#Функция, которая проверяет может ли существовать с такими углами треугольник
    return (a+b+c) == 180
for a in range(1,1000):
    # Переменная-флаг, которой присваивается единица при ложном значении выражения
    # Если ложных значений не было, то текущее значение A нам подходит
    f = 0
    for x in range(1,10000):
        if (angle(a,15,x+25) == angle(x,a,60) and (a + 10 >= 100)) == False:
            # При ложности выражения пропускаем текущее значение A
            f = 1
            break
    # Если значение подходит по флагу — выводим
    if f == 0:
        print(a)
        break

Ответ: 140

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

Задача 9#57877

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m»; и пусть на числовой прямой дан отрезок B = [36;51]  . Найдите наименьшую возможную длину отрезка A, при котором формула

(x ∈ A )∨ ((x ∈ B) − → ¬ ДЕЛ(x,5))

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

Показать ответ и решение
b = [i for i in range(36, 52)]

mn = 10**10
for a1 in range(1, 250):
    for a2 in range(a1+1, 251):
        f = 0
        a = [i for i in range(a1, a2)]
        for x in range(1, 500):
            if ((x in a) or ((x in b) <= (x % 5 != 0))) == False:
                f = 1
                break
        if f == 0:
            # -1, потому что мы считаем длину,
            # т.е. количество "дорог" между точками(целыми числами),
            mn = min(len(a)-1, mn)
print(mn)

Ответ: 10

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

Задача 10#57281

Укажите наибольшее целое значение A  , при котором выражение

(x > A)∨ (y > A )∨ (2x + y ⁄= 48)

истинно для любых целых неотрицательных значений x  и y  .

Показать ответ и решение
for a in range(1,100):
    f = 0
    for x in range(100):
        for y in range(100):
            if ((x > a) or (y > a) or (2*x+y != 48)) == False:
                f = 1
                break
        if f == 1:
            break
    if f == 0:
        print(a)

Ответ: 15

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

Задача 11#56448

Пусть через ДЕЛ(m, n) обозначается утверждение «натуральное число m делится без остатка на натуральное число m»; через СУММБОЛ(k, p) –утверждение «сумма целых чисел k и p больше 0».

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

(ДЕЛ(x, 13) → ¬ СУММБОЛ(x, 25)) ∨ (x + A ≥ 245)

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

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

Программное решение:

for a in range(1, 240):
f = True
for x in range(1, 240):
        if not (((x % 13 == 0) <= (not x + 25 > 0)) or x + a >= 245 ):
             f = False
             break
    if f:
        print(a)
        break

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