четверг, 24 июля 2014 г.

Таблица истинности

Задание.
Дан фрагмент таблицы истинности выражения F.
Значения в пустых клетках таблицы неизвестны и могут быть любыми из возможных.
0
0100
Перечислите в порядке возрастания без запятых и пробелов номера логических выражений, которые могут соответствовать F.
1) 
2) 
3) 
4) 
5) 

Решение.
А) Подставим известные значения [0,1,0] во все формулы:
1) ¬0∧1∧¬0 = 1
2) 0∨¬1∨¬0=1
3) 0∧¬1∧¬0=0
4)  ¬0∧¬1∧0=0
5)  0∨¬1∨0=0
Б) Проверяем 3-й, 4-й, 5-й варианты, может ли выражение F принимать
нулевое значение еще хотя бы для одного набора значений переменных.
Заполняем таблицы истинности:
[x1, x2, x3] -> F(x1, x2, x3)
=> функция 3)
[0, 0, 0] -> 0
[0, 0, 1] -> 0
[0, 1, 0] -> 0
[0, 1, 1] -> 0
[1, 0, 0] -> 1
[1, 0, 1] -> 0
[1, 1, 0] -> 0
[1, 1, 1] -> 0
=> функция 4)
[0, 0, 0]  -> 0
[0, 0, 1]  -> 1
[0, 1, 0]  -> 0
[0, 1, 1]  -> 0
[1, 0, 0]  -> 0
[1, 0, 1]  -> 0
[1, 1, 0]  -> 0
[1, 1, 1]  -> 0
=> функция 5)
[0, 0, 0]  -> 1
[0, 0, 1]  -> 1
[0, 1, 0]  -> 0
[0, 1, 1]  -> 1
[1, 0, 0]  -> 1
[1, 0, 1]  -> 1
[1, 1, 0]  -> 1
[1, 1, 1]  -> 1
Для функции 5) существует только одно нулевое значение,
а F должно иметь не менее 2 нулевых значений.

Ответ: 34

Python
def F(x):
  return [int((not x[0]) and x[1and (not x[2])),
          int(x[0or (not x[1]) or (not x[2])),
          int(x[0and (not x[1]) and (not x[2])),
          int((not x[0]) and (not x[1]) and x[2]),
          int(x[0or (not x[1]) or x[2])]
def Fcheck(f,x):
  print('[x1,x2,x3] =',x,'=> [F1,F2,F3,F4,F5] =',f(x)) 
  n=[i for i in range(len(f(x))) if f(x)[i]==0]
  bc=[[x1,x2,x3] 
      for x1 in [0,1for x2 in [0,1for x3 in [0,1]]
  s,c='',0print('Truth Tables')
  for i in n:
    print('F',i+1)
    for el in bc:
      if F(el)[i]==0: c+=1
      print(el,F(el)[i])
    if c>1: s+=str(i+1)
    print('F',i+1,'= 0 in',c,'cases'); c=0
  print('Answer:',s)
Fcheck(F,[0,1,0])
------------------------------------------------------------
[x1,x2,x3] = [0, 1, 0] => [F1,F2,F3,F4,F5] = [1, 1, 0, 0, 0] Truth Tables F 3 [0, 0, 0] 0 [0, 0, 1] 0 [0, 1, 0] 0 [0, 1, 1] 0 [1, 0, 0] 1 [1, 0, 1] 0 [1, 1, 0] 0 [1, 1, 1] 0 F 3 = 0 in 7 cases F 4 [0, 0, 0] 0 [0, 0, 1] 1 [0, 1, 0] 0 [0, 1, 1] 0 [1, 0, 0] 0 [1, 0, 1] 0 [1, 1, 0] 0 [1, 1, 1] 0 F 4 = 0 in 7 cases F 5 [0, 0, 0] 1 [0, 0, 1] 1 [0, 1, 0] 0 [0, 1, 1] 1 [1, 0, 0] 1 [1, 0, 1] 1 [1, 1, 0] 1 [1, 1, 1] 1 F 5 = 0 in 1 cases Answer: 34

Комментариев нет:

Отправить комментарий