diff --git a/boolean_algebra/quine_mc_cluskey.py b/boolean_algebra/quine_mc_cluskey.py index 0342e5c67753d3db7689915dbf7440e8299ab033..fb23c8c2e79cff8aeeaf10f9b4cf62a0061f7659 100644 --- a/boolean_algebra/quine_mc_cluskey.py +++ b/boolean_algebra/quine_mc_cluskey.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import Sequence + def compare_string(string1: str, string2: str) -> str: """ @@ -9,17 +11,17 @@ def compare_string(string1: str, string2: str) -> str: >>> compare_string('0110','1101') 'X' """ - l1 = list(string1) - l2 = list(string2) + list1 = list(string1) + list2 = list(string2) count = 0 - for i in range(len(l1)): - if l1[i] != l2[i]: + for i in range(len(list1)): + if list1[i] != list2[i]: count += 1 - l1[i] = "_" + list1[i] = "_" if count > 1: return "X" else: - return "".join(l1) + return "".join(list1) def check(binary: list[str]) -> list[str]: @@ -28,7 +30,7 @@ def check(binary: list[str]) -> list[str]: ['0.00.01.5'] """ pi = [] - while 1: + while True: check1 = ["$"] * len(binary) temp = [] for i in range(len(binary)): @@ -46,19 +48,18 @@ def check(binary: list[str]) -> list[str]: binary = list(set(temp)) -def decimal_to_binary(no_of_variable: int, minterms: list[float]) -> list[str]: +def decimal_to_binary(no_of_variable: int, minterms: Sequence[float]) -> list[str]: """ >>> decimal_to_binary(3,[1.5]) ['0.00.01.5'] """ temp = [] - s = "" - for m in minterms: + for minterm in minterms: + string = "" for i in range(no_of_variable): - s = str(m % 2) + s - m //= 2 - temp.append(s) - s = "" + string = str(minterm % 2) + string + minterm //= 2 + temp.append(string) return temp @@ -70,16 +71,13 @@ def is_for_table(string1: str, string2: str, count: int) -> bool: >>> is_for_table('01_','001',1) False """ - l1 = list(string1) - l2 = list(string2) + list1 = list(string1) + list2 = list(string2) count_n = 0 - for i in range(len(l1)): - if l1[i] != l2[i]: + for i in range(len(list1)): + if list1[i] != list2[i]: count_n += 1 - if count_n == count: - return True - else: - return False + return count_n == count def selection(chart: list[list[int]], prime_implicants: list[str]) -> list[str]: @@ -108,7 +106,7 @@ def selection(chart: list[list[int]], prime_implicants: list[str]) -> list[str]: for k in range(len(chart)): chart[k][j] = 0 temp.append(prime_implicants[i]) - while 1: + while True: max_n = 0 rem = -1 count_n = 0