15.03 Неравенства
Ошибка.
Попробуйте повторить позже
Для какого наибольшего целого неотрицательного числа выражение
тождественно истинно (т.е. принимает значение 1 при любом неотрицательном целом значении
переменной и
Решение руками:
Инвертируем известную часть:
Пусть . Чтобы выполнялось условие
, нужно взять
, в таком случае
условие будет выполняться и для
, и для
.
Если мы возьмём пару , то теперь наибольшее значение
уже будет равно
2.
Соответственно, чем больше мы будем брать , тем большее значение
можно взять.
Но, когда значение станет больше, чем
, то тогда уже придётся ориентироваться в первую
очередь на условие для
.
Следовательно, чтобы найти наибольшее А, нам нужна такая пара , при которой будет
выполняться
.
Это будет пара , и при таких значениях переменных наибольшее
будет равно
22.
Решение программой:
for a in range(0, 1000): c = 0 # Переменная-флаг for x in range(1, 1000): for y in range(1, 1000): if ((y + 2*x != 69) or (a < x) or (a < y)) == False: c = 1 break if c == 1: break if c == 0: print(a)
Ошибка.
Попробуйте повторить позже
Каково наибольшее целое при котором истинно высказывание:
Решение руками
Заметим, что логическое следование ложно только в случае . Значит, нужно понять, при
каких x впервые наступит такое условие (и взять x меньше, но максимальный).
Такое условие получается при x = 8: .
Возьмем x = 7: . Получили следование из 0 в 0, что дает истину. Значит,
наибольший x = 7.
Решение прогой
for x in range(1000): if (50 < x * x) <= (50 > (x + 1) * (x + 1)): print(x)
Ошибка.
Попробуйте повторить позже
Для какого наибольшего целого неотрицательного числа выражение
тождественно истинно (т.е. принимает значение 1 при любом неотрицательном целом значении
переменных и
Решение руками:
Инвертируем известную часть:
Пусть . Чтобы выполнялось условие
, нужно взять
, в таком случае
условие будет выполняться и для
, и для
.
Если мы возьмём пару , то теперь наибольшее значение
уже будет равно
2.
Соответственно, чем больше мы будем брать , тем большее значение
можно взять.
Но, когда значение станет больше, чем
, то тогда уже придётся ориентироваться в первую
очередь на условие для
.
Следовательно, чтобы найти наибольшее А, нам нужна такая пара , при которой будет
выполняться
.
Это будет пара , и при таких значениях переменных наибольшее
будет равно
32.
Решение программой:
def f(a): for x in range(1000): for y in range(1000): if not((99 != y + 2 * x) or (a < x) or (a < y)): return False return True for a in range(1000): if f(a): print(a)
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого неотрицательного числа выражение
тождественно истинно (т.е. принимает значение 1 при любых неотрицательных целых значениях переменных и
)?
Решение 1
def f(a): for x in range(1, 1000): for y in range(1, 1000): if ((69 < y + 2 * x) or (a > x) or (a > y)) == False: return False return True for a in range(1000): if f(a): print(a) break
Решение 2
Инвертируем известную часть:
Пусть . Чтобы выполнялось условие
, нужно взять
, в таком случае условие будет
выполняться и для
, правда не будет выполняться для
.
Если мы возьмём пару , то теперь наименьшее значение
уже будет равно 4.
Соответственно, чем больше мы будем брать , тем больше будет наименьшее значение для
.
Но, когда значение станет больше, чем
, то тогда уже придётся ориентироваться в первую очередь на условие
для
, т.к.
будет меньше чем
, и нам хватит меньшего значения для
, чтобы всё выражение было
истиной.
Следовательно, чтобы найти наименьшее А, нам нужна такая пара , при которой будет выполняться
.
Это будет пара , и при таких значениях переменных наименьшее
будет равно 24.
Ошибка.
Попробуйте повторить позже
Для какого наибольшего целого неотрицательного числа выражение
тождественно истинно при любых целых неотрицательных и
Решение 1 (руками)
Инвертируем известную часть:
Это выражение истино (а исходное соответственно ложно) при и
одновременно. Неизвестная часть
говорит, что сумма x и 3y должна быть больше чем A, тогда возьмем максимальные x и y из известной части,
так как они же будут являться минимальными значениями при которых неизвестная часть должна давать истину.
Подставим
и
, получим
, отсюда
.
Решение 2 (прогой)
def f(a): for x in range(1, 1000): for y in range(1, 1000): if not ((x + 3 * y > a) or (x < 18) or (y < 33)): return False return True for a in range(1000, 0, -1): if f(a): print(a) break
Ошибка.
Попробуйте повторить позже
Для какого наибольшего целого неотрицательного числа выражение
тождественно истинно при любых целых неотрицательных и
Решение руками
Инвертируем известную часть:
Это выражение истино (а исходное соответственно ложно) при и
одновременно. Неизвестная часть
говорит, что сумма 3x и 9y должна быть больше или равна чем A, тогда возьмем максимальные x и y из
известной части, так как они же будут являться минимальными значениями при которых неизвестная часть должна давать
истину. Подставим
и
, получим
, отсюда
.
Решение программой
def f(a): for x in range(1, 1000): for y in range(1, 1000): if not ((3 * x + 9 * y >= a) or not (x > 20) or (y < 10)): return False return True for a in range(1000, 0, -1): if f(a): print(a) break
Ошибка.
Попробуйте повторить позже
Для какого наибольшего целого неотрицательного числа выражение
тождественно истинно при любых целых неотрицательных и
Решение 1
Упростим, а затем инвертируем известную часть:
Поскольку по условию должно быть меньше либо равно
, нам надо взять наименьшие возможные
значения для
и
, чтобы при больших значениях условие для
точно выполнялось. Следовательно, нужно
брать
, то есть
, или же
, наибольшим значением для
будет
17.
Решение 2
def f(a): for x in range(1, 1000): for y in range(1, 1000): if ((x + 13/9 * y >= a) or not(x >= y) or (y < 7)) == False: return False return True for a in range(100): if f(a): print(a)
Ошибка.
Попробуйте повторить позже
Для какого наибольшего целого неотрицательного числа выражение
тождественно истинно при любых целых неотрицательных и
Решение 1 (руками)
Инвертируем известную часть:
Нам нужно взять такое , чтобы оно было меньше либо равно
. Значит, стоит взять наименьшее возможное
,
чтобы при больших значениях
условие точно выполнялось.
Чтобы выполнялось , нужно брать значения
кратные 5, т.к.
кратно 5, и
кратно
5.
Нам подходят следующие пары переменных:
Пара уже не будет подходить, т.к. условие
не выполняется.
Следовательно, берём пару с наименьшим :
.
При , наибольшее
равно 13.
Решение 2 (прогой)
def f(a): for x in range(1, 1000): for y in range(1, 1000): if not ((5 * x + 2 * y != 85) or (a <= x) or (x <= y)): return False return True for a in range(1000, 0, -1): if f(a): print(a) break
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого неотрицательного числа выражение
тождественно истинно, т.е. принимает значение при любых целых неотрицательных
?
Решение руками:
Инвертируем известную часть:
Нам нужно взять наибольшее возможное значение для , чтобы при меньших значениях условие
точно
выполнялось. Следовательно, при
, наименьшее
.
Решение программой:
for a in range(1000): fl = 0 for x in range(1000): f = (x < a) or (x < 20) or (x > 30) if f == 0: fl = 1 break if not fl: print(a) break
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого неотрицательного числа выражение
тождественно истинно, т.е. принимает значение при любых целых неотрицательных
?
Решение руками:
Инвертируем известную часть:
Корни для первого неравенства - 1 и 2, а значит можно превратить его в .
В данном диапазоне единственные целые значения - это 1 и 2.
При ,
.
При ,
.
Чтобы условие для точно выполнялось, нужно взять значения
как можно больше, чтобы при меньших
значения переменных выражение точно было истиной. Следовательно,
, и при данных значениях наименьшее
.
Решение программой
def f(x, y, a): return (x ** 2 - 3 * x + 2 > 0) or (y > x ** 2 + 7) or (x * y < a) for a in range(1000): fl = 0 for x in range(300): for y in range(300): if not f(x, y, a): fl = 1 break if fl: break if not fl: print(a) break
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого неотрицательного числа выражение
тождественно истинно, то есть принимает значение при любых целых неотрицательных
и
?
Решение 1. Руками
Инвертируем известную часть:
Чтобы условие выполнялось всегда, надо взять для
и
наибольшие возможные значения, чтобы при
меньших значениях условие точно выполнялось.
То есть, , а
, тогда наименьшее возможное
.
Решение 2. Прогой
def f(x, y, A): return (y + 2 * x < A) or (x > 30) or (y > 20) for A in range(10000): met_false = False for x in range(1000): for y in range(1000): if not f(x, y, A): met_false = True break if met_false: break if not met_false: print(A) break
Решение 3. Прогой
def f(a): for x in range(1000): for y in range(1000): if not((y + 2 * x < a) or (x > 30) or (y > 20)): return False return True for a in range(1000): if f(a): print(a) break
Ошибка.
Попробуйте повторить позже
Для какого наибольшего целого неотрицательного числа выражение
тождественно истинно при любых целых неотрицательных и
Решение 1. Руками
Инвертируем известную часть:
Чтобы условие выполнялось всегда, надо взять для
и
наименьшие возможные значения, чтобы при
больших значениях
точно было меньше, чем
.
То есть, , а
,
, тогда наименьшее возможное
.
Решение 2. Прогой
def f(x, y, A): return (x + 3*y > A) or (x < 18) or (y < 33) ans = 0 for a in range(1, 500): for x in range(1, 500): for y in range(1, 500): flag = True if not f(x, y, a): flag = False break if not flag: break if flag: ans = max(a, ans) print(ans)
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого неотрицательного числа выражение
тождественно истинно при любых целых неотрицательных и
Решение 1. Руками
Инвертируем известную часть:
Т.к. нам нужно, чтобы было больше, чем
, надо взять наибольшие возможные значения для
и
, тогда
при меньших значениях для данных переменных,
точно будет больше.
Следовательно, , а
(т.к.
должно выполняться).
, или же
, наименьшее значение
.
Решение 2. Прогой
def f(x, y, A): return (2 * x + 5 * y <= A) or (x >= y) or (y > 11) for a in range(500): for x in range(100): for y in range(100): flag = True if not f(x, y, a): flag = False break if not flag: break if flag: print(a) break
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого неотрицательного числа выражение
тождественно истинно при любых целых неотрицательных и
Решение 1. Руками
Инвертируем известную часть:
Чтобы условие выполнялось всегда, надо взять для
и
наибольшие возможные значения, чтобы при
меньших значениях условие точно выполнялось.
То есть, , а
, тогда наименьшее возможное
.
Решение 2. Прогой
def f(x, y, A): return (y + 2*x < A) or (30 < x) or (20 < y) ans = 10000000 for a in range(100): for x in range(100): for y in range(100): flag = True if not f(x, y, a): flag = False break if not flag: break if flag: ans = min(a, ans) print(ans)
Ошибка.
Попробуйте повторить позже
Для какого наибольшего целого неотрицательного числа выражение
тождественно истинно при любых целых неотрицательных и
Аналитическое решение:
Упростим выражение и раскроем импликации:
Обе части выражения должны давать истину, поэтому инвентируем известные части обеих частей выражения и рассмотрим их отдельно:
Сначала рассмотрим левую часть:
Чтобы точно было больше, чем
, надо взять наибольшее возможное значение для
, чтобы при меньших
выражение точно было истинным.
При ,
, значит
... и так далее до бесконечности.
Теперь рассмотрим правую часть:
Чтобы точно было меньше, чем
, надо взять наименьшее значение для
, чтобы при больших
выражение
точно было истинным.
При ,
,
- максимальное возможное
для правой части
Наибольшее общее значение для обеих частей выражения – это .
Программное решение:
def f(a): for x in range(1, 1000): for y in range(1, 1000): if (((x <= 9) <= (x * x <= a)) and ((y * y <= a) <= (y <= 10))) == False: return False return True for a in range(1000): if f(a): print(a)
Ошибка.
Попробуйте повторить позже
Сколько существует целых неотрицательных чисел , при которых выражение
тождественно истинно (т.е. принимает значение 1 при любых неотрицательных целых значениях переменных и
)?
Решение руками:
Упростим выражение:
Инвертируем известную часть для левой и правой части:
Нам нужно, чтобы выполнялась и левая часть выражения, и правая.
Разберём сначала левую часть:
Чтобы выполнялось, нужно взять наименьшее возможное значение для
, чтобы при больших
выражение точно было истиной.
То есть, при для левой части
... и так до
.
Теперь разберём правую часть:
Чтобы выполнялось, нужно взять наибольшее возможное значение для
, чтобы при меньших
выражение точно было истиной.
То есть, при для правой части
... и так до бесконечности.
Общие значения для обоих частей лежат в отрезке . Cледовательно, подходящих значений
будет
.
Решение программой:
count = 0 for a in range(0, 1000): c = 0 # Переменная-флаг for x in range(1, 1000): for y in range(1, 1000): if (((y*y < a) <= (y <= 8)) and ((x <= 5) <= (x*x <= a))) == False: c = 1 break if c == 1: break if c == 0: count += 1 print(count)
Ошибка.
Попробуйте повторить позже
Для какого наименьшего целого числа формула
тождественно истинна при любых положительных и
?
Решение 1. Руками
Инвертируем известную часть:
Нужно, чтобы выполнялось одно из двух условий для :
и
Чтобы выполнялось , нужно взять наибольшее возможное значение для
, чтобы при меньших
значение
точно было больше.
, значит нам подходят следующие значения для
:
... и так далее до бесконечности.
Чтобы выполнялось , нужно взять наибольшее возможное значение для
, чтобы при меньших
значение
точно было больше.
, значит нам подходят следующие значения для
:
... и так далее до бесконечности.
Наименьшее А, которое удовлетворяет одному из условий – это .
Решение 2. Программой
def f(x, y, a): return (x > 23) or (a > x) or (a > y) or (y > 47) for a in range(1000): podh = True for x in range(1000): for y in range(1000): if not(f(x, y, a)): podh = False break if not(podh): break if podh: print(a) break
Решение 3. Программой
def f(a): for x in range(1000): for y in range(1000): # если отрицание функции истинно, то такое a # не подходит if not((x > 23) or (a > x) or (a > y) or(y > 47)): return False # если все значения A прошли проверку, то вернем истину return True for a in range(100): if f(a): print(a) break
Ошибка.
Попробуйте повторить позже
Укажите наименьшее целое значение , при котором выражение
истинно для любых целых положительных значений и
.
Аналитическое решение:
Инвертируем известную часть:
Чтобы выражение было истинным, для должны выполняться сразу оба условия из правой части, поэтому
для
стоит подобрать 2 пары: с наибольшим значение
, и с наибольшим значением
, и
выбрать из двух возможных
наибольшее, чтобы при меньших значениях
и
выражение точно было
истиной.
, поскольку
, рассмотрим
:
,
.
, поскольку
, рассмотрим
:
,
.
Т.к.
Программное решение:
for a in range(0, 1000): flag = True for k in range(1, 1000): for n in range(1, 1000): if not ((5 * k + 6 * n > 57) or ((k <= a) and (n < a))): flag = False break if flag: print(a) break
Ошибка.
Попробуйте повторить позже
Укажите наибольшее целое значение А, при котором выражение
Аналитическое решение:
Инвертируем известную часть:
Пары, которые будут подходить под такое условие: ;
;
и т.д.
Оба условия для построены так, что
должно быть меньше правой части. Следовательно, чтобы
точно было
меньше при любых значениях
и
, надо взять наименьшие возможные значения для данных переменных, чтобы при
больших значениях условие точно выполнялось.
Пара, подходящая под данное условие - это .
,
,
.
Наибольшим значением для - это 51.
Программное решение:
def f(a): for x in range(1, 1000): for y in range(1, 1000): if ((y - x != 5) or (a < 2 * x ** 3 + y) or (a < y ** 2 + 16)) == False: return False return True for a in range(100): if f(a): print(a)
Ошибка.
Попробуйте повторить позже
Укажите наименьшее целое значение при котором выражение
Аналитическое решение:
Инвертируем известную часть:
Чтобы выражение было истинным, для должны выполняться сразу оба условия из правой части, поэтому
для
стоит подобрать 2 пары: с наибольшим значение
, и с наибольшим значением
, и
выбрать из двух возможных
наибольшее, чтобы при меньших значениях
и
выражение точно было
истиной.
, поскольку
, рассмотрим
:
,
.
, поскольку
, рассмотрим
:
,
.
Т.к.
Программное решение:
for A in range(10000): flag = True for k in range(1, 1000): for n in range(1, 1000): f = (5*k + 6*n > 57) or ((k <= A) and (n < A)) if f == 0: flag = False break if flag == False: break if flag: print(A) break