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

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

w → ((z → y) ∧ x),

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

 

????????????F
0100
1101
000

 

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

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

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

 

??????F
010

 

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

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

Ре­ше­ние.

При­ве­дем ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python:

import itertools,re

def f(vars):

x,y,z,w = vars

return w <= ((z <= x) and x)

matrix = ['0.100', '.1101', '0.0.0']

numvars=len(matrix[0])-1

table=[''.join(map(str,vars)) + str(int(f(vars))) for vars in itertools.product( [0,1], repeat=numvars )]

for perm in itertools.permutations(range(numvars)):

permtable=[''.join([line[perm[i]] for i in range(numvars)])+line[-1] for line in table]

for lines in itertools.permutations(permtable,len(matrix)):

if re.search(''.join(matrix),''.join(lines)):

print(''.join(['xyzw'[perm[i]] for i in range(numvars)]))

 

Ответ: xwyz.


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