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

Миша за­пол­нял таб­ли­цу ис­тин­но­сти ло­ги­че­ской функ­ции F:

(x∨¬y)∧¬(yz)∧¬w,

но успел за­пол­нить лишь фраг­мент из трёх раз­лич­ных её строк, даже не ука­зав, ка­ко­му столб­цу таб­ли­цы со­от­вет­ству­ет каж­дая из пе­ре­мен­ных w, x, y, z.

 

        F
111
1001
1101

 

Опре­де­ли­те, ка­ко­му столб­цу таб­ли­цы со­от­вет­ству­ет каж­дая из пе­ре­мен­ных w, x, y, z.

В от­ве­те на­пи­ши­те буквы w, x, y, z в том по­ряд­ке, в ко­то­ром идут со­от­вет­ству­ю­щие им столб­цы (сна­ча­ла буква, со­от­вет­ству­ю­щая пер­во­му столб­цу; затем буква, со­от­вет­ству­ю­щая вто­ро­му столб­цу, и т. д.). Буквы в от­ве­те пи­ши­те под­ряд, ни­ка­ких раз­де­ли­те­лей между бук­ва­ми ста­вить не нужно.

 

При­мер. Функ­ция F за­да­на вы­ра­же­ни­ем ¬xy, за­ви­ся­щим от двух пе­ре­мен­ных, а фраг­мент таб­ли­цы имеет сле­ду­ю­щий вид.

 

F
010

 

В этом слу­чае пер­во­му столб­цу со­от­вет­ству­ет пе­ре­мен­ная y, а вто­ро­му столб­цу  — пе­ре­мен­ная x. В от­ве­те сле­ду­ет на­пи­сать: yx.

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

Ре­ше­ние.

При­ведём ре­ше­ние.

Со­ста­вим таб­ли­цу ис­тин­но­сти для вы­ра­же­ния (x∨¬y)∧¬(yz)∧¬w, вруч­ную или при по­мо­щи языка Python:

print("x y z w")

for x in range(0, 2):

for y in range(0, 2):

for z in range(0, 2):

for w in range(0, 2):

if (x or not(y)) and (not(y == z)) and (not (w)):

print(x, y, z, w)

Далее вы­пи­шем те на­бо­ры пе­ре­мен­ных, при ко­то­рых дан­ное вы­ра­же­ние равно 1. В на­бо­рах пе­ре­мен­ные за­пи­шем в по­ряд­ке х, y, z, w. По­лу­чим сле­ду­ю­щие на­бо­ры:

(0, 0, 1, 0),

(1, 0, 1, 0),

(1, 1, 0, 0).

Со­по­ста­вим эти на­бо­ры с при­ве­ден­ным в за­да­нии фраг­мен­том таб­ли­цы ис­тин­но­сти.

Рас­смот­рим по­след­ний стол­бец таб­ли­цы ис­тин­но­сти, он может со­от­вет­ство­вать толь­ко пе­ре­мен­ной w, так как толь­ко эта пе­ре­мен­ная не может при­ни­мать зна­че­ние 1.

Рас­смот­рим вто­рую стро­ку таб­ли­цы ис­тин­но­сти. Это стро­ка может со­от­вет­ство­вать толь­ко на­бо­ру (0, 0, 1, 0). Сле­до­ва­тель­но, пер­вая и по­след­ние стро­ки со­дер­жать по две 1 и два 0. По­лу­ча­ем тре­тий стол­бец как (0, 0, 1). Он может со­от­вет­ство­вать толь­ко y. По усло­вию y не равен z. Сле­до­ва­тель­но, z  — это вто­рой стол­бец, тогда как x  — пер­вый.

 

Ответ: xzyw.

 

При­ведём ре­ше­ние Алек­сандра Коз­ло­ва.

from itertools import product

print ('ре­зуль­тат:\nx y z w') # за­го­ло­вок таб­ли­цы по усло­вию

for x, y, z, w in product([0, 1], repeat = 4):

if (x or y) and (not(y == z) and not w):

print(x,y,z,w)

 

ре­зуль­тат:

x y z w

0 1 0 0

1 0 1 0

1 1 0 0

Оче­вид­но что W – со­от­вет­ству­ет по­след­не­му пра­во­му столб­цу.

Видим, что стол­бец Z имеет толь­ко одну еди­нич­ку, сле­до­ва­тель­но, он может сто­ять толь­ко на пер­вом месте.

И, за­ме­тим – у X еди­ни­ца на одной стро­ке с Z

 

Совет:

Не по­ле­ни­тесь и по­ме­няй­те в коде пе­ре­мен­ные ме­ста­ми со­глас­но рас­суж­де­ни­ям выше:

 

from itertools import product

print ('ре­зуль­тат:\nz y x w') # за­го­ло­вок таб­ли­цы по усло­вию

for z, y, x, w in product([0, 1], repeat = 4):

if (x or y) and (not(y == z) and not w):

print(z,y,x,w)

 

ре­зуль­тат:

z y x w

0 1 0 0

0 1 1 0

1 0 1 0

 

Если еди­ни­ца в пер­вом столб­це стоит в той же стро­ке что и в тре­тьем – ре­ше­ние верно!


Аналоги к заданию № 57409: 81786 Все

Источник: ЕГЭ по ин­фор­ма­ти­ке 06.04.2023. До­сроч­ная волна