例如,AB + AB' = A
和ABC + ABC' = AB
。当用户输入AB
时,我如何找到丢失的字母并将其简化前的形式提供给它?事实上,我们需要做的是将缺失的字母和缺失的(非(字母与当前表达式相乘。例如,A * (B + B')
。
的其他示例
-
ABC + A'C'
(B缺失(=>(A'C' * (B + B')) + ABC
-
CCD_ 7(缺少B和C(=>
((AD' * (B+B')) * (C + C')) + ABCD
我们假设用户按顺序输入字母。输出应该相应。第一个";A";那么";B";那么";C";那么";D";并且至多D。我们如何用python解决这个问题?
以下是一些可能有所帮助的代码:
def split_into_terms(formula: str) -> list[str]:
return [ t.strip() for t in formula.split('+') ]
def variables_in_term(term: str) -> set[str]:
return set( c for c in term if c != "'" )
def missing_variables_in_term(term: str, all_variables: set[str]) -> set[str]:
return all_variables.difference(variables_in_term(term))
if __name__ == '__main__':
for term in split_into_terms("ABCD + AD'"):
print(f"Missing variables in term {term}: {''.join(missing_variables_in_term(term, set('ABCD')))}")