Для какого наибольшего целого неотрицательного числа А выражение
(x > A) ∨ (y > A) ∨ (x + 2y < 80)
истинно (т.е. принимает значение 1) при любых целых неотрицательных х и у?
Решение
Шаг 1. Перебор A от большего к меньшему
for A in range(100, -1, -1):
Ищем наибольшее A, при котором формула истинна для всех пар (x, y).
Шаг 2. Подсчёт истинных наборов (x, y)
c = 0
for x in range(0, 101):
for y in range(0, 101):
if (x > A) or (y > A) or (x + 2 * y < 80):
c += 1
Перебираем все допустимые x и y и считаем, при скольких парах формула истинна.
Шаг 3. Проверка полного покрытия и ответ
if c == 10201:
print(A)
break
Если формула истинна для всех 100 × 100 пар — выводим A и останавливаемся. Ответ: 26.
Решение
Шаг 1. Перебор A от большего к меньшему
for A in range(100, -1, -1):
Ищем наибольшее A, при котором формула истинна для всех пар (x, y).
Шаг 2. Подсчёт истинных наборов (x, y)
c = 0
for x in range(0, 101):
for y in range(0, 101):
if (x > A) or (y > A) or (x + 2 * y < 80):
c += 1
Перебираем все допустимые x и y и считаем, при скольких парах формула истинна.
Шаг 3. Проверка полного покрытия и ответ
if c == 10201:
print(A)
break
Если формула истинна для всех 100 × 100 пар — выводим A и останавливаемся. Ответ: 26.
Решение
Шаг 1. Перебор A от большего к меньшему
for A in range(100, -1, -1):
Ищем наибольшее A, при котором формула истинна для всех пар (x, y).
Шаг 2. Подсчёт истинных наборов (x, y)
c = 0
for x in range(0, 101):
for y in range(0, 101):
if (x > A) or (y > A) or (x + 2 * y < 80):
c += 1
Перебираем все допустимые x и y и считаем, при скольких парах формула истинна.
Шаг 3. Проверка полного покрытия и ответ
if c == 10201:
print(A)
break
Если формула истинна для всех 100 × 100 пар — выводим A и останавливаемся. Ответ: 26.