15.07 Прочие прототипы
Ошибка.
Попробуйте повторить позже
Элементами множества являются натуральные числа, причем
Известно, что выражение
существует такой, что
истинно (т.е. принимает значение ) для всех
Определите минимальную сумму элементов множества .
Максимальный размер множества : . Будем выкидывать из него элементы, чтобы найти минимальную сумму.
Очевидно, что при любом чётном первая скобка всегда будет истинной, и неважно, входит в множество или нет. Значит, из множества можно убрать все чётные элементы, то есть
При или в качестве можно взять число , тогда будет верна третья скобка, и неважно, входит в множество или нет. Значит, из множества можно убрать элементы и , то есть
Тогда минимальная сумма элементов равна: .
Неверное решение программой:
a = [] for x in range(1, 10): if ((x % 2 == 0) or (x in a) or (any(y*x % 15 == 0 for y in a))) == 0: a.append(x) print(a)
В данной задаче стандартное решение программой ошибочно, поскольку оно не учитывает, что, если в множестве будет элемент , то элементы и можно не добавлять в множество, поскольку они оба в произведении с кратны . Тогда итоговая сумма будет меньше той, что получила программа.
Ошибка.
Попробуйте повторить позже
Пусть через ДЕЛ(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
Ошибка.
Попробуйте повторить позже
Обозначим через УГОЛ(a, b, c) утверждение «значения чисел a, b, c являются углами невырожденного треугольника».Для какого наименьшего натурального числа А формула:
тождественно истинна (т.е. принимает значение 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
Ошибка.
Попробуйте повторить позже
Введём два утверждения. ОСТРОУГ(a, b, c) – «существует остроугольный треугольник со сторонами a, b и c». ТУПОУГ(a, b, c) – «существует тупоугольный треугольник со сторонами a, b и c». Аргументы a, b и c в каждой из функций подаются в неё по возрастанию, иначе функция возвращает ложное значение.
Для какой минимальной длины отрезка формула
тождественно истина (т. е. принимает значение 1) при любом натуральном значении переменной ?
Раскрываем импликацию и упрощаем выражение, получаем:
«Враги» хотят, чтобы выражение было ложно:
Разберёмся, когда первый треугольник не будет остроугольным и когда второй треугольник не будет тупоугольным. При или треугольник (39, 80, x) не существует. При или треугольник (65, 72, x) не существует. По условию в функции ОСТРОУГ(a, b, c) и ТУПОУГ(a, b, c) подаются аргументы по возрастанию, поэтому x будет являться наибольшей стороной.
Треугольник является остроугольным, когда и является тупоугольным при . Таким образом, получаем, что для остроугольный треугольник не существует при , то есть при . Аналогично для , тупоугольный треугольник не существует при , то есть при .
Преобразуем систему в соответствии с нашими высказываниями.
«Друзья» хотят победить врагов, поэтому им нужно, чтобы следующая система была истинной при всех и .
Это обеспечивается тогда, когда . Следовательно, минимальная длина обеспечивается, когда . Таким образом, длина равна .
Ошибка.
Попробуйте повторить позже
Обозначим через ТРЕУГ() утверждение «существует невырожденный треугольник с длинами сторон и ».
Для какого наибольшего натурального числа формула
тождественно истинна (т. е. принимает значение 1) при любом натуральном значении переменной ?
Примечание. , если и , если .
def triangle(a, b, c): a, b, c = sorted([a, b, c]) return a + b > c for A in range(1, 100): flag = True for x in range(1, 100): if not((triangle(x, 11, 18) == (not(max(x, 5) > 15))) and triangle(x, A, 5)) == False: flag = False if flag: print(A)
Ошибка.
Попробуйте повторить позже
Обозначим через ТРЕУГ() утверждение «существует невырожденный треугольник с длинами сторон и ».
Для какого наибольшего натурального числа формула
тождественно истинна (т. е. принимает значение 1) при любом натуральном значении переменной ?
Примечание. , если и , если .
def triangle(a, b, c): a, b, c = sorted([a, b, c]) return a + b > c for A in range(1, 100): flag = True for x in range(1, 100): if not((triangle(x, 12, 20) == (not(max(x, 5) > 28))) and triangle(x, A, 3)) == False: flag = False if flag: print(A)
Ошибка.
Попробуйте повторить позже
Обозначим через ТРЕУГ() утверждение «существует невырожденный треугольник с длинами сторон и ».
Для скольких натуральных чисел формула
тождественно истинна (т. е. принимает значение 1) при любом натуральном значении переменной ?
Примечание. , если и , если .
def triangle(a, b, c): a, b, c = sorted([a, b, c]) return a + b > c counter = 0 for A in range(1, 100): flag = True for x in range(1, 100): if (triangle(x, 25, 36) or triangle(x, 28, 55) or triangle(max(x, 20), 40, A) or (x > 80)) == False: flag = False if flag: counter += 1 print(counter)
Ошибка.
Попробуйте повторить позже
Обозначим через ТРЕУГ() утверждение «существует невырожденный треугольник с длинами сторон и ».
Для скольких натуральных чисел формула
тождественно истинна (т. е. принимает значение 1) при любом натуральном значении переменной ?
Примечание. , если и , если .
def triangle(a, b, c): a, b, c = sorted([a, b, c]) return a + b > c counter = 0 for A in range(1, 100): flag = True for x in range(1, 100): if (triangle(x, 10, 28) or triangle(x, 14, 56) or triangle(max(x, 20), 25, A) or (x > 60)) == False: flag = False if flag: counter += 1 print(counter)
Ошибка.
Попробуйте повторить позже
Обозначим через ТРЕУГ() утверждение «существует невырожденный треугольник с длинами сторон и ».
Найдите сумму всех натуральных чисел , для которых формула
тождественно истинна (т. е. принимает значение 1) при любом натуральном значении переменной ?
def triangle(a, b, c): a, b, c = sorted([a, b, c]) return a + b > c summa = 0 for A in range(1, 1000): flag = True for x in range(1, 1000): if (not(not triangle(x, 546, A) and not triangle(777, x, A)) or x > 1000) == False: flag = False if flag: summa += A print(summa)
Ошибка.
Попробуйте повторить позже
Обозначим через ТРЕУГ() утверждение «существует невырожденный треугольник с длинами сторон и ».
Найдите сумму всех натуральных чисел , для которых формула
тождественно истинна (т. е. принимает значение 1) при любом натуральном значении переменной ?
def triangle(a, b, c): a, b, c = sorted([a, b, c]) return a + b > c summa = 0 for A in range(1, 1000): flag = True for x in range(1, 1000): if (not(not triangle(x, 333, A) and not triangle(879, x, A)) or (x > 600)) == False: flag = False if flag: summa += A print(summa)
Ошибка.
Попробуйте повторить позже
Обозначим через ТРЕУГ() утверждение «существует невырожденный треугольник с длинами сторон и ».
Для скольких натуральных чисел формула
тождественно истинна (т. е. принимает значение 1) при любом натуральном значении переменной ?
Примечание. , если и , если .
def triangle(a, b, c): a, b, c = sorted([a, b, c]) return a + b > c counter = 0 for A in range(1, 100): flag = True for x in range(1, 100): if (triangle(x, 20, 45) or triangle(x, 15, 50) or triangle(max(x, 16), 36, A) or (x > 75)) == False: flag = False if flag: counter += 1 print(counter)
Ошибка.
Попробуйте повторить позже
Обозначим через ТРЕУГ() утверждение «существует невырожденный треугольник с длинами сторон и ».
Найдите сумму всех натуральных чисел , для которых формула
тождественно истинна (т. е. принимает значение 1) при любом натуральном значении переменной ?
def triangle(a, b, c): a, b, c = sorted([a, b, c]) return a + b > c summa = 0 for A in range(1, 1000): flag = True for x in range(1, 1000): if (not(not triangle(x, 111, A) and not triangle(101, x, A)) or x > 200) == False: flag = False if flag: summa += A print(summa)
Ошибка.
Попробуйте повторить позже
Обозначим через ТРЕУГ() утверждение «существует невырожденный треугольник с длинами сторон и ».
Для какого наибольшего натурального числа формула
тождественно истинна (т. е. принимает значение 1) при любом натуральном значении переменной ?
Примечание. , если и , если .
def triangle(a, b, c): a, b, c = sorted([a, b, c]) return a + b > c for A in range(1, 100): flag = True for x in range(1, 100): if not((triangle(x, 6, 10) == (not(max(x, 7) > 35))) and triangle(x, A, 5)) == False: flag = False if flag: print(A)
Ошибка.
Попробуйте повторить позже
Обозначим через утверждение «Натуральное число при делении на натуральное число даёт остаток ».
Для какого наименьшего целого числа формула
тождественно истинна (т. е. принимает значение при любых целых неотрицательных значениях переменных , )?
for A in range(1000): flag = True for x in range(1000): for y in range(1000): if not((x<A) or (y<A) or ((x*y)%3==0) or (4*x+2*y!=150)): flag = False break if not(flag): break if flag: print(A) break
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Обозначим через поразрядную конъюнкцию неотрицательных целых чисел и .
На числовой прямой даны отрезки и .
Определите наименьшее натуральное число , такое что выражение
тождественно истинно, то есть принимает значение 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)
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Обозначим через поразрядную конъюнкцию неотрицательных целых чисел и .
Так, например, .
На числовой прямой дан отрезок и множество .
Определите наименьшее натуральное число , такое что выражение
тождественно истинно, то есть принимает значение 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
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(, ) утверждение «число делится без остатка на число ». Для дробных чисел это означает, что результатом деления на является целое число.
На числовой прямой даны отрезки , . Найдите максимальную длину промежутка , такого что выражение
тождественно истинно, то есть принимает значение при любом натуральном числе .
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)
Видим, что программа вывела промежуток и его длину .
Значит, ответом является промежуток с дробными границами, левая граница которого стремится к , а правая к , тогда длина стремится к .
Ошибка.
Попробуйте повторить позже
Обозначим через ДЕЛ(, ) утверждение «натуральное число делится без остатка на натуральное число ».
На числовой прямой дан промежуток и множество .
Определите максимальную длину промежутка , такого что его правая граница не больше и выражение
тождественно истинно, то есть принимает значение при любых натуральных значениях переменных , .
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.