Форум » Логические выражения » Линия 15. Задача 6158. ошибка в ответе » Ответить

Линия 15. Задача 6158. ошибка в ответе

Max-xaM: (№ 6158) (Д. Статный) Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». На числовой прямой даны три отрезка: P = [257, 356], Q = [5, 600] и R = [59, 228]. Какова минимальная длина отрезка A, при котором формула ((x ∈ R) → (x ∈ A)) ∨ ((ДЕЛ(x, 3) → (x ∈ P)) → ((x ∈ Q) → (x ∈ A))) тождественно истинна, то есть принимает значение 1 при любом натуральном значении переменной х? Авторский ответ: 169 Правильный ответ: 168 - Отрезок [59, 227]

Ответов - 9

ENL: import sys sys.setrecursionlimit (10000) def F(a, b, x): if a <= x <=b: return True mn=10**9 for a in range(800): for b in range(a, 800): Rezult=1 for x in range(800): Rezult*=(not (F(59, 228, x))) or F(a, b, x) or (x%3==0) and (not (F(257, 356, x))) or (not (F(5, 600, x))) if Rezult: mn=min(mn, b-a) print(mn) ответ 168. Может где ошибка?

Поляков: Max-xaM пишет: Правильный ответ: 168 - Отрезок [59, 227] Доказывайте.

Max-xaM: Х может быть только натуральным числом, никаких нецелых. Иначе формула на делимость не определена. Проверяем отрезок А= [59,227] программно: ## var (p,q,r,a):=(257..356, 5..600, 59..228, 59..227); for var x:=1 to 70000 do if ( ((x in r) <= (x in a)) or ((x.Divs(3) <= (x in p)) <= ((x in q) <= (x in a))) ) = false then print(x); Ни один из Х от 1 до 70000 не срабатывает на ложь - везде правда.


ENL: [pre2] def F(a, b, x): if a <= x <=b: return True mn=10**9 for a in range(800): for b in range(a, 800): Rezult=1 for x in range(800): Rezult*=(not (F(59, 228, x))) or F(a, b, x) or (x%3==0) and \ (not (F(257, 356, x))) or (not (F(5, 600, x))) if Rezult: mn=min(mn, b-a) print(mn) [/pre2]

Max-xaM: Граница отрезка НЕ может быть НЕцелым числом - иначе функция НЕ определена. Об этом даже написано в самой задаче: " принимает значение 1 при любом натуральном значении переменной х " Нельзя для проверки брать НЕцелые числа Х. Верный ответ 168 Программа проверки "ЛЮБОГО" Х для отрезка 59-227 написана выше. Ваш ответ - 168,(9) является числом БОЛЬШЕ, чем 168 Так что МИНИМАЛЬНАЯ длина - 168

Поляков: Да, там ответ 168. Спасибо за обсуждение, ответ исправлен. Число 228 перекрывается условием ДЕЛ(x,3) and not (x in P).

Поляков: s11kai пишет: Данная программа написана по идее А.Кабанова и дает ответ 169, кто сможет пояснить в чем ошибка? Ошибкв в том, что эта программа проверяет не только целые значения x. А по условию они только целые.

Max-xaM: Не знаю, как прикрепить сюда файл Залил на яндекс-диск аналитическое доказательство без программ https://disk.yandex.ru/i/D0M_kLi5ewAobw

Ж: [pre2] p=range(257,357); q=range(5,601); r=range(59,229); mi=10**20 for b in range(200) : for c in range(b,b+200): a=range(b,c+1) for x in range(1,500): if not ( ((x in r)<=(x in a)) or (((x%3==0)<=(x in p))<=((x in q)<=(x in a))) ): break else: mi=min(mi, c-b) print(mi) [/pre2]



полная версия страницы