Автор | Сообщение |
|
Отправлено: 05.03.25 21:56. Заголовок: Объясните, пожалуйста
В задаче 482 дается ответ 20. Помогите, пожалуйста, что я делаю не так? """ На числовой прямой даны три отрезка: P = [10, 40], Q = [5, 15] и R = [35, 50]. Найдите наименьшую возможную длину отрезка A, при котором формула ((x Є P) → (x Є Q)) ꓦ (¬(x Є A) → (x Є R) ) тождественно истинна, то есть принимает значение 1 при любом значении переменной х. """ P=list(range(10,41)) Q=list(range(5,16)) R=list(range(35,51)) A=[] for x in range(-60,60): if (((x in P)<=(x in Q)) or ((x not in A)<=(x in R)))==False: A.append(x) print(A) #Ответ: 18 Если решать аналитически, то на этом отрезке Pꓥ¬Qꓥ¬R A=1. Тоже длина отрезка 18.
|
 |
|
Ответов - 2
[только новые]
|
|
|
| Администратор
|
Сообщение: 4158
|
|
Отправлено: 05.03.25 22:11. Заголовок: def f(x, a1, a2): ..
def f(x, a1, a2): P = 10 <= x <= 40 Q = 5 <= x <= 15 R = 35 <= x <= 50 A = a1 <= x <= a2 return (P <= Q) or ((not A) <= R) points = [x+delta for x in [10, 40, 5, 15, 35, 50] for delta in [-0.1, 0, 0.1] ] Amin = float('inf') for a1 in points: for a2 in points: if all( f(x,a1, a2) for x in points ): Amin = min( Amin, round(a2) - round(a1) ) print( Amin ) Ответ 20. Аналитически: Amin = P*(not Q)&*(not R) = [15; 35]
|
 |

|
|
Отправлено: 05.03.25 22:23. Заголовок: Благодарю
|
 |
|
|