提问人:ageow 提问时间:12/24/2021 最后编辑:Dave2eageow 更新时间:10/10/2022 访问量:236
布尔代数:如何补全缺失的表达式
Boolean algebra how to complete missing expressions
问:
例如,和 .当用户输入时,我怎样才能找到丢失的字母并给它简化之前的形式?实际上,我们需要做的是将缺失的字母和缺失的(非)字母与当前表达式相乘。例如。AB + AB' = A
ABC + ABC' = AB
AB
A * (B + B')
其他例子
ABC + A'C'
(缺少 B)=>(A'C' * (B + B')) + ABC
ABCD + AD'
(缺少 B 和 C)=>((AD' * (B+B')) * (C + C')) + ABCD
我们假设用户按顺序输入字母。输出应该是相应的。首先是“A”,然后是“B”,然后是“C”,然后是“D”,最多达到 D。 我们如何用python解决这个问题?
答:
0赞
md2perpe
12/24/2021
#1
下面是一些可能有帮助的代码:
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')))}")
评论
AB