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

Две ло­ги­че­ские функ­ции за­да­ны вы­ра­же­ни­я­ми:

F1  =  (x∨¬y)≡(zw),

F2  =  (¬xy)∧(zw).

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

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

 

????????? ??? F1

F2

0000
00001
1100

 

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

 

При­мер. Пусть за­да­но вы­ра­же­ние xy, за­ви­ся­щее от двух пе­ре­мен­ных x и y, и фраг­мент таб­ли­цы ис­тин­но­сти:

 

Пе­ре­мен­ная 1Пе­ре­мен­ная 2Функ­ция
??????F
010

 

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

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

Ре­ше­ние.

Со­ста­вим таб­ли­цу ис­тин­но­сти для ис­ход­ных вы­ра­же­ний при по­мо­щи языка Python:

def f_1(x, y, z, w):

if ((x or not(y)) == (z <= w )) == 1:

return 1

else:

return 0

def f_2(x, y, z, w):

if ((not(x) == y) and (z <= w)) == 1:

return 1

else:

return 0

print('x y z w f1 f2')

for x in range(2):

for y in range(2):

for z in range(2):

for w in range(2):

print(x, y, z, w, ' ', f_1(x, y, z, w), ' ',f_2(x, y, z, w))

Мы по­лу­чи­ли 16 на­бо­ров. Рас­смот­рим вто­рую стро­ку таб­ли­цы, в ней зна­че­ние пер­вой функ­ции равно 0, а зна­че­ние вто­рой  — 1, при этом три пе­ре­мен­ные при­ни­ма­ют зна­че­ние 0. Это воз­мож­но толь­ко в одном слу­чае (0, 1, 0, 0), то есть y со­от­вет­ству­ет тре­тий стол­бец.

Те­перь най­дем слу­чай, при ко­то­ром пер­вая функ­ция при­ни­ма­ет зна­че­ние 0, y при­ни­ма­ет зна­че­ние 0, и ещё две пе­ре­мен­ные при­ни­ма­ют зна­че­ние 0. Это воз­мож­но толь­ко в одном слу­чае (0, 0, 1, 0), то есть z со­от­вет­ству­ет пер­вый стол­бец.

Те­перь най­дем слу­чай, при ко­то­ром вто­рая функ­ция при­ни­ма­ет зна­че­ние 0, z при­ни­ма­ет любое зна­че­ние, y при­ни­ма­ет зна­че­ние 1, одна пе­ре­мен­ная при­ни­ма­ет зна­че­ние 1, и ещё одна при­ни­ма­ет зна­че­ние 0. Это воз­мож­но толь­ко в слу­ча­ях (1, 1, 1, 0) и (1, 1, 0, 0), в обоих слу­ча­ях одна пе­ре­мен­ная равна 0, вто­рая  — 1, то есть x со­от­вет­ству­ет вто­рой стол­бец, и w со­от­вет­ству­ет чет­вер­тый стол­бец.

Таким об­ра­зом, z со­от­вет­ству­ет пер­вый стол­бец, x  — вто­рой, y  — тре­тий, w  — чет­вер­тый.

 

Ответ: zxyw.

 

При­ве­дем ре­ше­ние Ильи Кры­ло­ва на языке 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):

result1 = bool((x or not(y))==(z <= w))

result2 = bool((not(x)==y)and(z<=w))

if (result1 == True) and (result2 == True):

continue

print(x,y,z,w,' ',int(result1),int(result2))


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