Задание.
Дан фрагмент таблицы истинности выражения F.
Значения в пустых клетках таблицы неизвестны и могут быть любыми из возможных.
Перечислите в порядке возрастания без запятых и пробелов номера логических выражений, которые могут соответствовать F.
Решение.
А) Подставим известные значения [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
[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
Дан фрагмент таблицы истинности выражения F.
Значения в пустых клетках таблицы неизвестны и могут быть любыми из возможных.
| 0 | |||
| 0 | 1 | 0 | 0 |
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[1] and (not x[2])),
int(x[0] or (not x[1]) or (not x[2])),
int(x[0] and (not x[1]) and (not x[2])),
int((not x[0]) and (not x[1]) and x[2]),
int(x[0] or (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,1] for x2 in [0,1] for x3 in [0,1]]
s,c='',0; print('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])
------------------------------------------------------------
Комментариев нет:
Отправить комментарий