Объяснение:
A B С B∧A A→B∧A A→B∧A→C A→B∧A→C→C
0 0 0 0 1 0 1
0 0 1 0 1 1 1
0 1 0 0 1 0 1
0 1 1 0 1 1 1
1 0 0 0 0 1 0
1 0 1 0 0 1 1
1 1 0 1 1 0 1
1 1 1 1 1 1 1
Упрощение:
(A→B∧A→C)→C = ((¬A∨B)→C)→C = (C∨A¬B)→C=¬ A∨C∨ B
class Person(object):
def __init__(self, name = 'Bob', age = 25): #Значения по умолчанию заданы в конструкторе
self._name = name
self._age = age
@property
def name(self): #Свойство, возвращающее значение obj._name
return self._name
def age(self): #Свойство, возвращающее значение obj._age
return self._age
def say_hi(self): #Рандомный метод
print(f'Hi, im {self._name}, im {self._age} yo')
def set_age(self, value): #Метод для изменения значения свойства obj._age
if value in range(1, 101):
self._age = value
else: raise RuntimeError('Bad Argument', f'Cant set age {value}, age must be in range [1, 100]')
Второй класс попробуй реализовать сам
Объяснение:
A B С B∧A A→B∧A A→B∧A→C A→B∧A→C→C
0 0 0 0 1 0 1
0 0 1 0 1 1 1
0 1 0 0 1 0 1
0 1 1 0 1 1 1
1 0 0 0 0 1 0
1 0 1 0 0 1 1
1 1 0 1 1 0 1
1 1 1 1 1 1 1
Упрощение:
(A→B∧A→C)→C = ((¬A∨B)→C)→C = (C∨A¬B)→C=¬ A∨C∨ B
class Person(object):
def __init__(self, name = 'Bob', age = 25): #Значения по умолчанию заданы в конструкторе
self._name = name
self._age = age
@property
def name(self): #Свойство, возвращающее значение obj._name
return self._name
@property
def age(self): #Свойство, возвращающее значение obj._age
return self._age
def say_hi(self): #Рандомный метод
print(f'Hi, im {self._name}, im {self._age} yo')
def set_age(self, value): #Метод для изменения значения свойства obj._age
if value in range(1, 101):
self._age = value
else: raise RuntimeError('Bad Argument', f'Cant set age {value}, age must be in range [1, 100]')
Объяснение:
Второй класс попробуй реализовать сам