Задача 15

Правила перевода в python

 

Логическая операция python
Отрицание ¬ not()
Логическое умножение ∧ and
Логическое сложение ∨ or
Следование X ⟶ Y x <= y
Равносильность ≡ ==
Поразрядная коньюкция & &

 

Вид 1. Координатная плоскость

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

((x ≤ 9) →(x ⋅ x ≤ A)) ⋀ ((y ⋅ y ≤ A) → (y ≤ 9))

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


for a in range(0,300):
    ok = 1
    for x in range(0,300):
        for y in range(0,300):
            if ((x <= 9) <= (x * x <= a)) and ((y*y <= a) <= (y <= 9)) == 1:
                pass
            else:
                ok = 0
    if ok == 1:
        print(a)

Ответ 99.

Вид 2. Побитовая коньюкция

Обозначим через m & n поразрядную конъюнкцию неотрицательных целых чисел m и n.

Так, например, 14 & 5 = 11102 & 01012 = 01002 = 4. Для какого наименьшего неотрицательного целого числа А формула

 

x & 29 ≠ 0 → (x & 17 = 0 → x & А ≠ 0)

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


for a in range(0,300):
    ok = 1
    for x in range(0,300):
        if ((x & 29 != 0) <= ((x & 17 == 0) <= (x & a != 0))) == 1:
            pass
        else:
            ok = 0
    if ok == 1:
        print(a)

Ответ 12

 

Вид 3. Числовые отрезки

На числовой прямой даны два отрезка: P = [10, 29] и Q = [13, 18].

Укажите наибольшую возможную длину отрезка A, для которого выражение

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

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


l = 0
for a1 in range(0,300):
    for a2 in range(a1,300):
        ok = 1
        for x in range(0,300):
            if (((a1<=x<=a2)<=(10<=x<=29)) or (13<=x<=18)) == 1:
                pass
            else:
                ok = 0
        if ok == 1:
            #print(a1, ' - ', a2)
            if a2 - a1 > l:
                l = a2 - a1
print(l) 

Ответ 19

Вид 4. Функция Дел

нужно просто через оператор def создать функцию на проверку делимости

Обратить внимание в 15 задаче

  • при использовании функции дел следим что бы передавать в него данные без нуля т.е. в renge, берем не с 0, а с 1.
  • проверку делаем от 0 до 300 если нужно проверять положительные числа. Делаем проверку от -200 до 200 если проверяем при любых вещественных x

Пример на вещественные числа 

На числовой прямой задан отрезок A. Известно, что формула

 

((x ∈ A) → (x2 ≤ 81)) ∧ ((y2 ≤ 36) → (y ∈ A))

 

тождественно истинна при любых вещественных x и y. Какую наибольшую длину может иметь отрезок A?


l = 0
for a1 in range(-50,50):
    for a2 in range(a1,50):
        ok = 1
        for x in range(-50,50):
            for y in range(-50,50):
                if ((a1<=x<=a2) <= (x*x <= 81)) and ((y*y <= 36) <= (a1<=y<=a2)) == 1:
                    pass
                else:
                    ok = 0
        if ok == 1:
            #print(a1, ' - ', a2)
            if a2 - a1 > l:
                l = a2 - a1
print(l) 

ответ 18