OpenFIPI 2.0

2

3

C8147F

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

¬(y z) \/ (x  w) \/ ¬x,

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

 

 

 

 

F

 

0

 

0

0

 

 

1

 

0

 

1

0

 

0

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

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

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

 

 

F

0

1

0

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

xzyw

from itertools import *
def f(x,z,y,w):
    return not(y<=z) or (x<=w) or (not x)
for a1,a2,a3,a4,a5,a6,a7 in product([0,1],repeat = 7):
    table = [(a1,0,a2,0),(a3,a4,1,a5),(a6,1,0,a7)]
    if len(table) == len(set(table)):
        for p in permutations('xzyw'):
            if [f(**dict(zip(p,r))) for r in table] == [0,0,0]:
                print(p)

Просмотреть отправленные ответы C8147F