Untitled
unknown
plain_text
2 years ago
2.4 kB
14
Indexable
# Define logic gates def and_gate(a, b): return a and b def or_gate(a, b): return a or b def not_gate(a): return not a def nand_gate(a, b): return not and_gate(a, b) def nor_gate(a, b): return not or_gate(a, b) def eor_gate(a, b): return a != b def enor_gate(a, b): return not eor_gate(a, b) # Prompt user for input gate = input("Enter the boolean logic gate (using symbols for and, or, not, nand, nor, eor, and enor): ") # Simplify the gate using boolean algebra simplified_gate = gate while True: old_gate = simplified_gate simplified_gate = simplified_gate.replace("not not ", "") # Double negation simplified_gate = simplified_gate.replace("not True", "False") # Not True is False simplified_gate = simplified_gate.replace("not False", "True") # Not False is True simplified_gate = simplified_gate.replace("True and ", "") # True and x is x simplified_gate = simplified_gate.replace(" and True", "") # x and True is x simplified_gate = simplified_gate.replace("False and ", "False") # False and x is False simplified_gate = simplified_gate.replace(" and False", "False") # x and False is False simplified_gate = simplified_gate.replace("True or ", "True") # True or x is True simplified_gate = simplified_gate.replace(" or True", "True") # x or True is True simplified_gate = simplified_gate.replace("False or ", "") # False or x is x simplified_gate = simplified_gate.replace(" or False", "") # x or False is x simplified_gate = simplified_gate.replace("True eor True", "False") # True eor True is False simplified_gate = simplified_gate.replace("False eor False", "False") # False eor False is False simplified_gate = simplified_gate.replace("True eor False", "True") # True eor False is True simplified_gate = simplified_gate.replace("False eor True", "True") # False eor True is True simplified_gate = simplified_gate.replace("True enor True", "True") # True enor True is True simplified_gate = simplified_gate.replace("False enor False", "True") # False enor False is True simplified_gate = simplified_gate.replace("True enor False", "False") # True enor False is False simplified_gate = simplified_gate.replace("False enor True", "False") # False enor True is False if simplified_gate == old_gate: break # Output the simplified gate print("Simplified gate: ", simplified_gate)
Editor is loading...