Форум » Логические выражения » 15.497.4974 » Ответить

15.497.4974

ivackov.sergey: { На числовой прямой даны два отрезка: P = [55; 80], Q = [20; 105]. Найдите наименьшую возможную длину отрезка A, при котором формула (x ∈ Q) → ( ((x ∈ P) ≡ (x ∈ Q)) ∨ (¬(x ∈ P) → (x ∈ A)) ) тождественно истинна, то есть принимает значение 1 при любых x.} [pre2] ## var P := Lst(55..80); var Q := Lst(20..105); var A := new List<Integer>; for var x := -1000 to 1000 do begin if not ((x in Q) <= (((x in P) = (x in Q)) or ((x not in P) <= (x in A)))) then begin A.Add(x); end; end; A.Println; //20..54 разрыв 81..105 print(min(54-20,105-81)); [/pre2] В ответах 85, однако в наборе данных есть разрыв между 54 и 81. Поэтому ответ у меня получился 24?

Ответов - 4

Поляков: Лучше руками решать. Тогда поймете, в чем ошиблись.

ivackov.sergey: После упрощения получилось, что A = not P and Q. Значит программное и ручное решение совпали. В чем может быть проблема?

Поляков: ivackov.sergey пишет: что A = not P and Q. Значит программное и ручное решение совпали. Это верно, и это Amin. В чем может быть проблема? В том, что not P and Q в данном случае состоит из двух отрезков. Отрезок А должен перекрыть оба.


ivackov.sergey: В том, что not P and Q в данном случае состоит из двух отрезков. Отрезок А должен перекрыть оба. Спасибо!



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