布尔代数如何完成缺失的表达式



例如,AB + AB' = AABC + 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')))}")

相关内容

  • 没有找到相关文章

最新更新