15.05 Отрезки
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: = [55;100],
= [66;129]. Укажите наименьшую возможную длину такого
отрезка
, что формула
истинна, т.е. принимает значение 1 при любом значении переменной .
Решение руками
В начале для удобства заменим некоторые выражения:
Тогда выражение примет такой вид:
Заменим импликацию на отрицание первого или второе. Выражение будет выглядеть следующим образом:
Раскроем отрицание в скобке. Теперь выражение имеет такой вид:
Избавимся от повторяющейся Р под отрицанием и получим окончательное упрощенное выражение:
Как можем заметить, нам нужно найти значения x когда выражение равно истине, при этом только А должна
равняться единице, а все остальные – 0. Не P и Не Q будут равны 0, когда х будут находиться в пределах отрезков P и
Q. Получается, нас интересует отрезок, который находится как в отрезке P,так и в отрезке Q. Это отрезок: .
Ответ:34.
Решение программой
p = [i for i in range(55, 101)] # задаем отрезок p q = [i for i in range(66, 130)] # задаем отрезок q mn = 10**10 for a1 in range(1, 200): # перебираем начало отрезка а for a2 in range(a1 + 1, 201): # перебираем конец отрезка а c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным a = [i for i in range(a1, a2)] # формируем отрезок а for x in range(1, 500): # перебираем значения x # если при текущем x - выражение ложно if ((x in p) <= (((x in q) and (x not in a)) <= (x not in p))) == False: c = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно истинно break if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка print(mn)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
. Укажите наибольшую возможную
длину промежутка
, для которого формула
тождественно истинна, то есть принимает значение 1 при любом значении переменной
.
Решение Python:
p = range(15, 51) q = range(35, 60) mx = [] for i in range(10, 60): for j in range(i+1, 61): a = range(i, j) c = 0 for x in range(1, 1000): if (((not x in a) <= (x in p)) <= ((x in a) <= (x in q))) == False: c = 1 break if c == 0: mx.append(len(a)) print(max(mx))
Решение руками:
Преобразуем данное выражение по законам де Моргана:
Воспользуемся правилом:
Получим:
Получается, что должен принадлежать
, либо не принадлежать
. Так как мы ищем
наибольшую возможную длину
, необходимо, чтобы он полностью содержался в
, т.е.
максимальная длина отрезка
.
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
. Укажите наименьшую возможную
длину такого отрезка
, что формула
истинна при любом значении переменной , т.е. принимает значение 1 при любом значении
переменной
.
Решение руками
Преобразуем данное выражение по законам де Моргана и закону раскрытия импликации:
Первая и вторая скобка будут ложны только тогда, когда принадлежит одновременно и
, и
. Значит, наша задача подобрать такое
, чтобы оно перекравыло область пересечения этих
отрезков. Тогда, наименьшая длина
.
Решение программой
p = [i for i in range(10, 18)] # задаем отрезок p q = [i for i in range(15, 26)] # задаем отрезок q mn = 10**10 for a1 in range(1, 50): # перебираем начало отрезка а for a2 in range(a1 + 1, 51): # перебираем конец отрезка а c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным a = [i for i in range(a1, a2)] # формируем отрезок а for x in range(1, 500): # перебираем значения x # если при текущем x - выражение ложно if ((x in p) <= (((x in q) and (x not in a)) <= (x not in p))) == False: c = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно истинно break if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка print(mn)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
. Укажите наименьшую возможную
длину такого отрезка
, что формула
истинна при любом значении переменной , т.е. принимает значение 1 при любом значении
переменной
.
Решение руками
Преобразуем данное выражение по законам де Моргана:
Первое и второе выражение будут ложны только тогда, когда принадлежит одновременно и
, и
. Значит, наша задача подобрать такое
, чтобы оно перекравыло область пересечения этих
отрезков. Тогда, наименьшая длина
.
Решение программой
p = [i for i in range(5, 36)] # задаем отрезок p q = [i for i in range(20, 52)] # задаем отрезок q mn = 10**10 for a1 in range(1, 100): # перебираем начало отрезка а for a2 in range(a1 + 1, 101): # перебираем конец отрезка а c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным a = [i for i in range(a1, a2)] # формируем отрезок а for x in range(1, 500): # перебираем значения x # если при текущем x выражение ложно if ((x in p) <= (((x in q) and (x not in a)) <= (x not in p))) == False: c = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно истинно break if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка print(mn)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
.Отрезок
таков, что приведённая
ниже формула истинна при любом значении переменной
:
Какова наименьшая возможная длина отрезка ?
Решение руками
Преобразуем данное выражение по законам де Моргана:
Первое и второе выражение будут ложны только тогда, когда принадлежит одновременно и
, и
. Значит, наша задача подобрать такое
, чтобы оно перекравыло область пересечения этих
отрезков. Тогда, наименьшая длина
.
Решение программой
p = [i for i in range(10, 51)] # задаем отрезок p q = [i for i in range(30, 66)] # задаем отрезок q mn = 10**10 for a1 in range(1, 100): # перебираем начало отрезка а for a2 in range(a1 + 1, 101): # перебираем конец отрезка а c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным a = [i for i in range(a1, a2)] # формируем отрезок а for x in range(1, 500): # перебираем значения x # если при текущем x выражение ложно if ((x not in a) <= (((x in p) and (x in q)) <= (x in a))) == False: c = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно истинно break if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка print(mn)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
. Укажите наибольшую возможную
длину промежутка
, для которого формула
тождественно истинна, то есть принимает значение 1 при любом значении переменной .
Решение руками
Преобразуем данное выражение по законам де Моргана:
Получается, что должен принадлежать
, либо не принадлежать
. Так как мы ищем
наибольшую возможную длину
, необходимо, чтобы он полностью содержался в
, т.е.
максимальная длина отрезка
.
Решение программой
p = [i for i in range(15, 51)] # задаем отрезок p q = [i for i in range(35, 61)] # задаем отрезок q mx = 0 for a1 in range(1, 100): # перебираем начало отрезка а for a2 in range(a1 + 1, 101): # перебираем конец отрезка а c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным a = [i for i in range(a1, a2)] # формируем отрезок а for x in range(1, 500): # перебираем значения x # если при текущем x выражение ложно if (((x not in a ) <= (x in p)) <= ((x in a) <= (x in q))) == False: c = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно истинно break if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным mx = max(len(a)-1,mx) # вычисляем максимальную длину отрезка print(mx)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
. Укажите наименьшую возможную
длину такого отрезка
, что формула
истинна при любом значении переменной , т.е. принимает значение 1 при любом значении
переменной
.
Преобразуем данное выражение по законам де Моргана:
Первое и второе выражение будут ложны только тогда, когда принадлежит одновременно и
, и
. Значит, наша задача подобрать такое
, чтобы оно перекравыло область пересечения этих
отрезков. Тогда, наименьшая длина
.
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
. Укажите наименьшую возможную
длину такого отрезка
, что формула
истинна при любом значении переменной , т.е. принимает значение 1 при любом значении
переменной
.
Преобразуем данное выражение по законам де Моргана:
Сделаем отрацание известной части, чтобы найти такие при которых исходное выражение дает
ложь.
Отсюда следует, что выражение будет ложным только тогда, когда принадлежит одновременно и
, и
. Значит, наша задача подобрать такое
, чтобы оно перекравыло область пересечения этих
отрезков. Тогда, наименьшая длина
.
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
.Отрезок A таков, что приведённая
ниже формула истинна при любом значении переменной
:
Какова наименьшая возможная длина отрезка ?
Преобразуем данное выражение по законам де Моргана:
Первое и второе выражение будут ложны только тогда, когда принадлежит одновременно и
, и
. Значит, наша задача подобрать такое
, чтобы оно перекравыло область пересечения этих
отрезков. Тогда, наименьшая длина
.
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
Укажите минимальную длину промежутка
что
формула
истинна при любом значении переменной т.е. принимает значение
при любом значении переменной
.
Решение руками
Составим систему для врагов:
Враги хотят, чтобы был одновременно не в
и в
. Такой промежуток —
. Тогда мечты врагов такие:
«Вот бы промежуток
был не в
».
Чтобы победить, друзья подберут такой , который гарантированно будет содержать промежуток
и будет
как можно меньше. Наименьшая длина такого промежутка равна
.
Решение программой
p = [i/4 for i in range(25*4, 37*4)] # задаем отрезок p, добавляя дробные числа q = [i/4 for i in range(28*4, 56*4)] # задаем отрезок q, добавляя дробные числа mn = 10**10 for a1 in range(1, 100): # перебираем начало отрезка а for a2 in range(a1 + 1, 101): # перебираем конец отрезка а c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным a = [i/4 for i in range(a1*4, a2*4)] # формируем отрезок а, добавляя дробные числа for x in range(1*4, 500*4): # перебираем значения x # если при текущем x выражение ложно if (((x/4) in a) or ((x/4) in q) or ((x/4) not in p)) == False: c = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно истинно break if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным mn = min(len(a)/4,mn) print(mn)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
. Найдите наименьшую возможную длину отрезка
,
при котором формула
тождественно истинна, то есть принимает значение при любых
.
Решение руками
Составим систему для врагов:
Мечты врагов такие: «Вот бы любой принадлежал
или
и не принадлежал
». То есть, враги хотят, чтобы
был в
и не был в
. Тогда друзья хотят, чтобы этот отрезок был в
, и сам
был минимальной длины.
Значит,
и
.
Решение программой
p = [i for i in range(20, 51)] # задаем отрезок p q = [i for i in range(30, 41)] # задаем отрезок q mn = 10**10 for a1 in range(1, 100): # перебираем начало отрезка а for a2 in range(a1 + 1, 101): # перебираем конец отрезка а c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным a = [i for i in range(a1, a2)] # формируем отрезок а for x in range(1, 500): # перебираем значения x # если при текущем x - выражение ложно if ((x not in a) <= ((x not in p) and (x not in q))) == False: c = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно истинно break if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка print(mn)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
. Найдите наибольшую возможную длину отрезка
,
при котором формула
тождественно ложна, то есть принимает значение при любых
.
Решение руками
Первым шагом раскроем импликацию и отрицания:
Инвертируем известную часть, чтобы понять при каких она дает истину:
Это выражение ложно (а исходное соответственно истино), когда не принадлежит ни отрезку
ни отрезку
,
и не им одновременно. Это выполняется при
Тогда, чтобы исходное выражение давало ложь, необходимо
чтобы отрезок A полностью лежал в области
. Поскольку в задании проясят найти максимальную длину
отрезка A, то
. Его длина равна
.
Решение программой
p = [i for i in range(11, 29)] # задаем отрезок p q = [i for i in range(15, 36)] # задаем отрезок q mx = 0 for a1 in range(1, 100): # перебираем начало отрезка а for a2 in range(a1 + 1, 101): # перебираем конец отрезка а c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было ложным a = [i for i in range(a1, a2)] # формируем отрезок а for x in range(1, 500): # перебираем значения x # если при текущем x выражение истинно if ((x in a) and (not((x not in p) <= (x in q)))): c = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно ложно break if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было ложным mx = max(len(a)-1,mx) # вычисляем максимальную длину отрезка print(mx)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны три отрезка: ,
и
. Какова наименьшая длина отрезка
,
при котором формула
тождественно истинна, то есть принимает значение 1 при любом значении переменной ?
Решение руками
Враги мечтают чтобы был одновременно в
, не в
, не в
и при этом не в
. Это отрезок
.
Друзья хотят чтобы этот отрезок был в и длина
была как можно меньше. Тогда
и
.
Решение программой
p = [i for i in range(20, 31)] # задаем отрезок p q = [i for i in range(5, 16)] # задаем отрезок q c = [i for i in range(35, 51)] # задаем отрезок с mn = 10**10 for a1 in range(1, 100): # перебираем начало отрезка а for a2 in range(a1 + 1, 101): # перебираем конец отрезка а f = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным a = [i for i in range(a1, a2)] # формируем отрезок а for x in range(1, 500): # перебираем значения x # если при текущем x - выражение ложно if (((x in p) <= (x in q)) or ((x not in a) <= (x in c))) == False: f = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно истинно break if f == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка print(mn)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
. Укажите наибольшую возможную длину промежутка
, для которого формула
тождественно истинна (т.е. принимает значение 1 при любых значениях переменной ).
Решение программой
p = [i/4 for i in range(8*4, 13*4)] # задаем отрезок p q = [i/4 for i in range(4*4, 31*4)] # задаем отрезок q mx = 0 for a1 in range(1, 100): # перебираем начало отрезка а for a2 in range(a1 + 1, 101): # перебираем конец отрезка а c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным a = [i/4 for i in range(a1*4, a2*4)] # формируем отрезок а for x in range(1*4, 500*4): # перебираем значения x # если при текущем x - выражение ложно if ((((x/4) in p) == ((x/4) in q)) <= ((x/4) not in a)) == False: c = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно истинно break if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным mx = max(len(a)/4,mx) # вычисляем максимальную длину отрезка print(mx)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
. Укажите наименьшую возможную длину промежутка
, для которого формула
тождественно истинна (т.е. принимает значение 1 при любых значениях переменной ).
Решение аналитикой
Первым шагом раскроем импликацию:
Инвертируем известную часть, чтобы найти те иксы, при которых исходное выражение будет ложно.
Отсюда следует, что выражение ложно когда принадлежит или отрезку
или отрезку
. Тогда, отрезок
должен содержать все иксы, принадлежащие этим отрезкам. Наименьшим таким отрезком будет [0; 50]. Его длина
.
Решение программой
p = [i for i in range(11)] # задаем отрезок p q = [i for i in range(25, 51)] # задаем отрезок q mn = 10**10 for a1 in range(100): # перебираем начало отрезка а for a2 in range(a1 + 1, 101): # перебираем конец отрезка а c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным a = [i for i in range(a1, a2)] # формируем отрезок а for x in range(500): # перебираем значения x # если при текущем x - выражение ложно if ((x not in a) <= ((x not in p) and (x not in q))) == False: c = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно истинно break if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка print(mn)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
. Укажите наибольшую возможную длину промежутка
, для которого формула
тождественно истинна (т.е. принимает значение при любых значениях переменной
).
Напишем, чего хотят враги:
Отсюда следует, что врагам нужно, чтобы или был и в
, и в
, или же
не был ни в
, ни в
, при этом
всём
должен находиться в промежутке
.
Обратим внимание, что отрезок (
) находится в отрезке
(
). Таким образом, получается, что система
врагов ломается, если
принадлежит отрезку
, но при этом не принадлежит отрезку
, или же, если
не
принадлежит промежутку
.
Следовательно, друзьям необходимо сделать такой , что если
попадает в данный промежуток, то при этом
также будет входить в
, но не входить в
. Под ответ подходят два промежутка —
(длина —
) и
(длина —
), но, так как в условии задачи просят найти наибольшую возможную длину промежутка
, то ответ -
.
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
Укажите минимальное количество целых точек на
промежутке
что формула
истинна при любом значении переменной т.е. принимает значение 1 при любом значении переменной
Решение программой
p = [i for i in range(25, 37)] # задаем отрезок p q = [i for i in range(28, 56)] # задаем отрезок q mn = 10**10 for a1 in range(1, 100): # перебираем начало отрезка а for a2 in range(a1 + 1, 101): # перебираем конец отрезка а c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным a = [i for i in range(a1, a2)] # формируем отрезок а for x in range(1, 500): # перебираем значения x # если при текущем x - выражение ложно if ((x in a) or (x in q) or (x not in p)) == False: c = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно истинно break if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным mn = min(len(a),mn) # вычисляем минимальное количество чисел в отрезке а print(mn)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны два отрезка: и
. Укажите наибольшую возможную длину промежутка
, для которого формула
тождественно истинна (т.е. принимает значение 1 при любых значениях переменной ).
Решение программой
p = [i for i in range(15, 34)] # задаем отрезок p q = [i for i in range(45, 69)] # задаем отрезок q mx = 0 for a1 in range(1, 100): # перебираем начало отрезка а for a2 in range(a1 + 1, 101): # перебираем конец отрезка а c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным a = [i for i in range(a1, a2)] # формируем отрезок а for x in range(1, 500): # перебираем значения x # если при текущем x - выражение ложно if (((x in a) and (x not in q)) <= ((x in p) or (x in q))) == False: c = 1 # меняем значение флага # и сбрасываем цикл, переходим к следующему отрезку а, # так как для данного отрезка а выражение не тождественно истинно break if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным mx = max(len(a)-1,mx) # вычисляем максимальную длину отрезка а print(mx)
Ошибка.
Попробуйте повторить позже
На числовой прямой даны отрезки и
и функция
При каком наименьшем числе функция
истинна более чем для
целых чисел
?
def inn(x, A): return A[0] <= x <= A[1] for i in range(10000): A = [70, 90] B = [40, 60] C = [0, i] counter = 0 for x in range(1000): f = ((not(inn(x, A))) <= (inn(x, B))) and ( (not(inn(x, C))) <= (inn(x, A))) counter += f if counter > 30: print(i) break
Ошибка.
Попробуйте повторить позже
На числовой прямой даны отрезки и функция
При каком наибольшем числе функция
истинна более чем для
целых чисел
?
def ins(x, A): return (x >= A[0]) and (x <= A[1]) def f(x, N): A = [30, 50] B = [40, 46] C = [N, 61] return ((not ins(x, B)) <= (not ins(x, A))) and ((not ins(x, C)) <= ins(x, B)) for N in range(1, 100): k = 0 for x in range(1, 100): k += f(x, N) if k > 25: maxim = N print(maxim)