Задания
Версия для печати и копирования в MS Word
Тип 15 № 13364
i

На чис­ло­вой пря­мой даны два от­рез­ка: P  =  [130; 171] и Q  =  [150; 185]. Ука­жи­те наи­мень­шую воз­мож­ную длину та­ко­го от­рез­ка A, что фор­му­ла

(x ∈ P) → (((x ∈ Q) ∧ ¬(x ∈ A)) → ¬(x ∈ P))

ис­тин­на при любом зна­че­нии пе­ре­мен­ной х, т. е. при­ни­ма­ет зна­че­ние 1 при любом зна­че­нии пе­ре­мен­ной х.

Спрятать решение

Ре­ше­ние.

Рас­кро­ем два­жды им­пли­ка­цию, по­лу­чим: ¬(x ∈ P) ∨ (¬((x ∈ Q) ∧ ¬(x ∈ A)) ∨ ¬(x ∈ P)).

Ис­поль­зу­ем За­ко­ны де Мор­га­на, имеем: ¬(x ∈ P) ∨ ¬(x ∈ Q) ∨ (x ∈ A).

Пер­вое и вто­рое вы­ра­же­ния при­ни­ма­ют зна­че­ние 0 тогда, когда x лежит в обоих от­рез­ках. По­это­му под­хо­дят все зна­че­ния пе­ре­мен­ной такие, что 150<=x<=171. Таким и нужно за­дать от­ре­зок A, его длина 21.

 

При­ме­ча­ние.

В от­рез­ке [150; 171] со­дер­жит­ся 22 целых числа. Длина этого от­рез­ка 21.

 

При­ведём дру­гое ре­ше­ние за­да­чи на языке Python.

s = []

for a1 in range(1,200):

for a2 in range(1,200):

fl= True

for x in range(1,200):

if not((130<=x<=171)<=(((150<=x<=185)and (not(a1<=x<=a2)))<= (not(130<=x<=171)))):

fl = False

break

if fl:

s.append(a2-a1)

print(min(s))

 

 

При­ведём ре­ше­ние за­да­чи Ивана Глад­ких на языке Python.

m = 10**6

P = [i for i in range(130, 172)]

Q = [i for i in range(150, 186)]

for Amin in range(1, 200):

for Amax in range(Amin + 1, 200):

check = 1

A = [i for i in range(Amin, Amax)]

for x in range(-300, 300):

f = (x in P) <= (((x in Q) and (x not in A)) <= (x not in P))

if not f:

check = 0

break

if check == 1:

m = min(m,Amax - Amin)

print(m-1)

Источник: ЕГЭ по ин­фор­ма­ти­ке 2017. До­сроч­ная волна
Раздел кодификатора ФИПИ: 1.5.1 Вы­ска­зы­ва­ния, ло­ги­че­ские опе­ра­ции, кван­то­ры, ис­тин­ность вы­ска­зы­ва­ния