15.03 Неравенства
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого неотрицательного числа A выражение
тождественно истинно при любых целых неотрицательных X и Y ?
Решение руками:
Отрицаем известную часть: . Чтобы найти минимальное значение
необходимо,
чтоб произведение
было максимальным. Исходя из полученных неравенств получим
, тогда
. Теперь подставим эти значения в неравенство
. Получим
. Тогда минимально
.
Решение программой:
Для нахождения наименьшего целого неотрицательного , при котором выражение
тождественно истинно для всех неотрицательных целых и
, используем программный перебор. Идея
заключается в том, чтобы проверить все значения
от 0 до 99 с помощью цикла for. Для каждого
перебираем все
значения
от 0 до 100 и
от 0 до 99 через вложенные циклы for. Если хотя бы для одной пары
выражение
оказалось ложным, текущее
отбрасываем. Если выражение истинно для всех
, фиксируем найденное
минимальное
и прекращаем перебор.
for a in range(100): f = 0 # флаг: 0 - выражение пока истинно для всех x и y, 1 - найдено ложное значение # перебор всех x от 0 до 100 for x in range(101): # перебор всех y от 0 до 99 for y in range(100): # проверка выполнения выражения для текущих x, y и A if ((x >= 7) or (2 * x < y) or (x * y < a)) == False: f = 1 # если выражение ложно, меняем флаг break # выход из цикла по y if f == 1: break # выход из цикла по x при найденном ложном случае if f == 0: # если выражение истинно для всех x и y, выводим A и прекращаем перебор print(a) break
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Укажите наименьшее целое значение A, при котором выражение
истинно для любых целых и положительных значений x и y.
Решение руками:
Отрицаем известную часть: . Чтобы найти минимальное значение
необходимо, чтоб
и
были максимальны. Исходя из полученных неравенств получим
,
. Теперь подставим эти значения в
неравенство
. Получим
. Тогда минимально
.
Решение программой:
Для нахождения наименьшего целого , при котором выражение
тождественно истинно для всех положительных целых и
, используем программный перебор. Идея
заключается в том, чтобы проверить все значения
от 0 до 299 с помощью цикла for. Для каждого
перебираем
все значения
и
от 1 до 499 через вложенные циклы for. Если хотя бы для одной пары
выражение
оказалось ложным, текущее
отбрасываем. Если выражение истинно для всех
, фиксируем найденное
минимальное
и прекращаем перебор.
for a in range(300): # Переменная-флаг: True - выражение пока истинно для всех x и y, False - найдено ложное значение flag = True # перебор всех x от 1 до 499 for x in range(1, 500): # перебор всех y от 1 до 499 for y in range(1, 500): # проверка выполнения выражения для текущих x, y и A # если выражение ложно, меняем флаг if (((3*y + x) < a) or (x > 12) or (y > 15)) == False: flag = False break # выход из цикла по y # если выражение истинно для всех x и y, выводим A и прекращаем перебор if flag == True: print(a) break
Получается ответ:
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого неотрицательного числа выражение
тождественно истинно, т.е. принимает значение 1 при любых целых неотрицательных и
?
Решение руками:
Нам нужно, чтобы это выражение всегда было истинно; так как между скобками стоит ИЛИ, то достаточно чтобы
хотя бы одна скобка давала истину. Известная часть дает ложь когда
и
. Получаем,
что первая скобка обязательно должна давать истину когда
и
, то есть должно
выполняться неравенство
. Наименьшее
, которое подходит под условие это
121.
Решение программой:
Для нахождения наименьшего целого неотрицательного , при котором выражение
тождественно истинно для всех неотрицательных целых и
, используем программный перебор. Идея
заключается в том, чтобы проверить все значения
от 0 до 999 с помощью цикла for. Для каждого
перебираем
все значения
и
от 0 до 999 через вложенные циклы for. Если хотя бы для одной пары
выражение
оказалось ложным, текущее
отбрасываем. Если выражение истинно для всех
, фиксируем найденное
минимальное
и прекращаем перебор.
for a in range(1000): # Переменная-флаг: True - выражение пока истинно для всех x и y, False - найдено ложное значение f = 0 # перебор всех x от 0 до 999 for x in range(1000): # перебор всех y от 0 до 999 for y in range(1000): # проверка выполнения выражения для текущих x, y и A # если выражение ложно, меняем флаг if ((3*x+5*y < a) or (y > x) or (x > 15)) == False: f = 1 break # выход из цикла по y if f == 1: break # выход из цикла по x # если выражение истинно для всех x и y, выводим A и прекращаем перебор if f == 0: print(a) break
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Для какого наибольшего целого неотрицательного числа выражение
тождественно истинно, т.е. принимает значение 1 при любых целых неотрицательных и
?
Решение руками:
Нам нужно, чтобы это выражение всегда было истинно; так как между скобками стоит ИЛИ, то достаточно чтобы
хотя бы одна скобка давала истину. Известная часть дает ложь когда
и
.
Получаем, что первая скобка обязательно должна давать истину когда
и
, то есть
должно выполняться неравенство
. Наибольшее
, которое подходит под условие это
83.
Решение программой:
Для нахождения наибольшего целого неотрицательного , при котором выражение
тождественно истинно для всех неотрицательных целых и
, используем программный перебор. Идея
заключается в том, чтобы проверить все значения
от 100 вниз до 2 с помощью цикла for. Для каждого
перебираем все значения
и
от 0 до 999 через вложенные циклы for. Если хотя бы для одной пары
выражение оказалось ложным, текущее
отбрасываем. Если выражение истинно для всех
, фиксируем
найденное максимальное
и прекращаем перебор.
for a in range(100, 1, -1): # Переменная-флаг: True - выражение пока истинно для всех x и y, False - найдено ложное значение f = 0 # перебор всех x от 0 до 999 for x in range(1000): # перебор всех y от 0 до 999 for y in range(1000): # проверка выполнения выражения для текущих x, y и A # если выражение ложно, меняем флаг if ((2*x+y > a) or (y < x) or (x < 28)) == False: f = 1 break # выход из цикла по y if f == 1: break # выход из цикла по x # если выражение истинно для всех x и y, выводим A и прекращаем перебор if f == 0: print(a) break
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого неотрицательного числа выражение
тождественно истинно, т.е. принимает значение 1 при любых целых неотрицательных и
?
Решение аналитически:
Первым шагом инвертируем известную часть, чтобы определить при каких исходное выражение будет
ложно:
Тепеь определим, для каких крайних значений и
это выражение будет давать истину. Правая часть будет
давать истину при
, возьмем крайнее значение – 5. Используем это значение для левой части:
.
Получаем крайнее значение
– 5.
Вернемся к неизвестной части и подставим туда найденные крайние значения: , отсюда
.
Решение программой:
Для нахождения наименьшего целого неотрицательного , при котором выражение
тождественно истинно для всех неотрицательных целых и
, используем программный перебор. Идея
заключается в том, чтобы проверить все значения
от 0 до 999 с помощью цикла for. Для каждого
перебираем
все значения
и
от 0 до 999 через вложенные циклы for. Если хотя бы для одной пары
выражение
оказалось ложным, текущее
отбрасываем. Если выражение истинно для всех
, фиксируем найденное
минимальное
и прекращаем перебор.
for a in range(1000): # Переменная-флаг: True - выражение пока истинно для всех x и y, False - найдено ложное значение f = 0 # перебор всех x от 0 до 999 for x in range(1000): # перебор всех y от 0 до 999 for y in range(1000): # проверка выполнения выражения для текущих x, y и A # если выражение ложно, меняем флаг if ((x*y < a) or (x < y) or (x > 5)) == False: f = 1 break # выход из цикла по y if f == 1: break # выход из цикла по x # если выражение истинно для всех x и y, выводим A и прекращаем перебор if f == 0: print(a) break
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого неотрицательного числа выражение
тождественно истинно, т.е. принимает значение 1 при любых целых неотрицательных и
?
Решение аналитически:
Первым шагом инвертируем известную часть, чтобы определить при каких исходное выражение будет
ложно:
Тепеь определим, для каких крайних значений и
это выражение будет давать истину. Правая часть будет
давать истину при
, возьмем крайнее значение – 13. Используем это значение для левой части:
.
Получаем крайнее значение
– 26.
Вернемся к неизвестной части и подставим туда найденные крайние значения: , отсюда
.
Решение программой:
Для нахождения наименьшего целого неотрицательного , при котором выражение
тождественно истинно для всех неотрицательных целых и
, используем программный перебор. Идея
заключается в том, чтобы проверить все значения
от 0 до 999 с помощью цикла for. Для каждого
перебираем
все значения
и
от 0 до 999 через вложенные циклы for. Если хотя бы для одной пары
выражение
оказалось ложным, текущее
отбрасываем. Если выражение истинно для всех
, фиксируем найденное
минимальное
и прекращаем перебор.
for a in range(1000): # Переменная-флаг: True - выражение пока истинно для всех x и y, False - найдено ложное значение f = 0 # перебор всех x от 0 до 999 for x in range(1000): # перебор всех y от 0 до 999 for y in range(1000): # проверка выполнения выражения для текущих x, y и A # если выражение ложно, меняем флаг if ((2*x < y) or (x > 13) or (x*y < a)) == False: f = 1 break # выход из цикла по y if f == 1: break # выход из цикла по x # если выражение истинно для всех x и y, выводим A и прекращаем перебор if f == 0: print(a) break
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого числа А выражение
тождественно истинно, т.е. принимает значение 1 при любых целых неотрицательных x и y?
Решение руками:
Отрицаем известную часть и получаем, что:
То есть . Нам необходимо, чтобы
.
Максимальное значение в левой части третьей скобки достигается при значении x = 80; y = 0. Наименьшее значение
А, при котором будет выполнено неравенство равняется: .
Решение программой:
Для нахождения наименьшего целого , при котором выражение
тождественно истинно для всех неотрицательных целых и
, используем программный перебор. Идея
заключается в том, чтобы проверить все значения
от -1000 до 999 с помощью цикла for. Для каждого
перебираем все значения
и
от 0 до 999 через вложенные циклы for. Если хотя бы для одной пары
выражение оказалось ложным, текущее
отбрасываем. Если выражение истинно для всех
, фиксируем
найденное минимальное
и прекращаем перебор.
for a in range(-1000, 1000): # Переменная-флаг: 0 - выражение пока истинно для всех x и y, 1 - найдено ложное значение c = 0 # перебор всех x от 0 до 999 for x in range(0, 1000): # перебор всех y от 0 до 999 for y in range(0, 1000): # проверка выполнения выражения для текущих x, y и A # если выражение ложно, меняем флаг if ((x > 80) or (y > 70) or (3*x - 5*y < a)) == False: c = 1 break # выход из цикла по y if c == 1: break # выход из цикла по x # если выражение истинно для всех x и y, выводим A и прекращаем перебор if c == 0: print(a) break
Получаем ответ:
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого числа А выражение
тождественно истинно, т.е. принимает значение 1 при любых целых натуральных x и y?
Решение руками
Отрицаем известную часть: . Так как х и у – целые натуральные, то минимальное значение
равно 1. Тогда
, то есть
.
Значит, .
Решение программой
Идея заключается в переборе возможных значений (от -1000 до 1000) и проверке, что для всех комбинаций
и
(от 1 до 1000) выражение
выполняется. Если для какого-то
найдётся хотя бы
одна пара
, нарушающая условие, это
отбрасывается. Минимальное
, при котором условие выполняется
для всех
и
, и будет ответом.
Для реализации этой идеи создадим цикл for для перебора параметра . Внутри него, также с помощью циклов
for, организуем перебор значений
и
. Для каждого
будем создавать переменную-флаг, которая изначально
равна 0. Если выражение ложно хотя бы для одного набора переменных, то её значение будем устанавливать 1.
Если флаг стал равен 1, то можно прервать циклы по
и
и перейти к следующему
. Если после
перебора всех значений флаг остаётся 0, значит, выражение тождественно истинно. Так как по условию
требуется найти минимальное
, то если после завершения цикла флаг остался 0, выведем
и прервём
цикл.
# Перебираем возможные значения 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 ((y + 10*x < a) or (5*x + 2*y > 102)) == False: c = 1 # Если да, меняем значение флага break # Прерываем цикл по y if c == 1: # Прерываем цикл по x, если флаг равен 1 break # Если флаг остался 0, значит, для этого a условие выполнено для всех x и y if c == 0: print(a) # Выводим найденное минимальное A break # Завершаем поиск, так как ищем наименьшее A
Ошибка.
Попробуйте повторить позже
Для какого наибольшего целого неотрицательного числа выражение
тождественно истинно при любых целых неотрицательных и
Аналитическое решение
Инвертируем известную часть:
Нам нужно взять такое , чтобы оно было больше, чем
. Значит, стоит взять наибольшее возможное значение
для
и
, чтобы при меньших значениях переменных условие точно выполнялось.
В таком случае, и
.
Наименьшим , при котором неравенство
выполняется, является
.
Решение программой:
Перебираем целые неотрицательные значения от 0 до 500. Для каждого
вложенными циклами for перебираем
все неотрицательные целые пары
(в коде — от
до
) и проверяем выполнение выражения
Если найдётся хотя бы одна пара , для которой выражение не выполняется (ложно), текущее
отбрасываем. Если же для всех перебранных пар выражение истинно,
считается подходящим и выводится как
наибольшее.
# перебор возможных значений A от 0 до 500 for a in range(500): flag = True # предполагаем, что текущее A подходит # перебор x от 0 до 500 for x in range(500): # перебор y от 0 до 500 for y in range(500): # если выражение ложно для текущих x,y — A не подходит if ((x + 2 * y < a) or (y > x) or (x > 60)) == False: flag = False # если нашли "плохую" пару, прекращаем перебор y break # прекращаем перебор x if flag == False: break # если выражение истинно для всех x,y, выводим A и завершаем поиск if flag == True: print(a) break