На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение





Сообщение: 15
ссылка на сообщение  Отправлено: 03.12.23 19:08. Заголовок: №6479


(№ 6479) На числовой прямой даны три отрезка: P = [1381; 2165], Q = [369; 3894] и R = [2643; 3155]. Укажите наименьшую возможную длину такого отрезка A, что формула
(¬((x ∈ Q) → ((x ∈ P) ∨ (x ∈ R)))) → (¬(x ∈ A) → ¬(x ∈ Q))
тождественно истинна, то есть принимает значение 1 при любом значении переменной х?

Ответ: 3525

Я получаю 3 отрезка:
[369.0; 1380.9] Длина 1012
[2165.1; 2642.9] Длина 478
[3155.1; 3893.9] Длина 739

Если брать отрезок от 369 до 3894, то длина как раз получится 3525... но у меня получаются разрывы на 3 отрезка.

Посмотрите пожалуйста в чем ошибка?


Код на Python:
 
p1, p2, q1, q2, r1, r2 = 1381, 2165, 369, 3894, 2643, 3155

P = {i / 10 for i in range(p1 * 10, p2 * 10 + 1)}
Q = {i / 10 for i in range(q1 * 10, q2 * 10 + 1)}
R = {i / 10 for i in range(r1 * 10, r2 * 10 + 1)}

A = set()


def f(x):
return (not ((x in Q) <= ((x in P) or (x in R)))) <= ((x not in A) <= (x not in Q))


for x in [i / 10 for i in range(q1 * 10, q2 * 10 + 1)]:
if not f(x):
A.add(x)

A = sorted(A)
print(A)
begin = 0

# Проверка на разрывы
for i in range(1, len(A)):
if round(A[ i ] - A[i - 1], 1) > 0.1:
print("[{}; {}] Длина {}".format(A[begin], A[i - 1], round(A[i - 1]) - round(A[begin])))
begin = i

print("[{}; {}] Длина {}".format(A[begin], A[i - 1], round(A[ i ]) - round(A[begin])))


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]







Сообщение: 16
ссылка на сообщение  Отправлено: 03.12.23 22:01. Заголовок: Смею предположить, ч..


Смею предположить, что в задании опечатка и нужно найти НАИБОЛЬШУЮ длину отрезка... В таком случае все четко, получаем 3525.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 175
ссылка на сообщение  Отправлено: 04.12.23 09:47. Заголовок: Не думаю, что есть о..


Не думаю, что есть опечатка...
Наибольшая длина отрезка м.б. любой: от -10000 до 10000 к примеру (20000 длиной).
Требуется найти именно целый отрезок, покрывающий все ваши 3 отрезка. А минимальный такой отрезок - и есть отрезок от 369 до 3894.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 213
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет