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

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

F1  =  (x ∨¬ y) → (w ≡ z)

F2  =  (x ∨¬ y) ≡ (w → z)

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

???

???

???

???

F1

F2

00000
110
0000

 

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

 

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

 

Пе­ре­мен­ная 1

???

Пе­ре­мен­ная 2

???

Функ­ция

F

010

 

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

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

Ре­ше­ние.

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

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

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

return 1

else:

return 0

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

if ((x or not(y)) == (w <= z)) == 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 на­бо­ров (см. табл).

xyzwf1 f2 
0 0 0011
000100
001001
001111
010010
010111
011010
011110
100011
100100
101001
101111
110011
110100
111001
111111

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

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

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

 

Ответ: ywxz.

 

При­ве­дем ре­ше­ние на языке Python.

from itertools import product as p, permutations as pp

 

f1 = lambda x, y, z, w: 1 if not (x or not y) or (w == z) else 0

f2 = lambda x, y, z, w: 1 if (x or not y) == (not w or z) else 0

 

for a0, a1, a2, a3 in p((0,1), repeat=4):

s = [(0, a1, 0, 0), (a0, 1, 1, a3), (a0, 0, 0, 0)]

if len(set(s)) == len(s):

for x, y, z, w in pp((0, 1, 2, 3)):

if not sum([f1(i[x], i[y], i[z], i[w]) for i in s][:-1]) and\

(t:=[f2(i[x], i[y], i[z], i[w]) for i in s]) and t[0] + t[2] == 0:

print(f'x = {x+1}; y = {y+1}; z = {z+1}; w = {w+1}'); break

 

Вывод: x  =  3; y  =  1; z  =  4 и w  =  2.

 

Ответ: ywxz.


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