c
codeye
V1
2022/11/06阅读:24主题:默认主题
求等式成立

624 * 13 * 9 * 14 * 132 * 54
符号Punctuation替代上面的 * 设法等式成立!
from itertools import permutations as pt
def equal(punc,arr):
arr = [n.strip() for n in arr.split("*")]
operator = [p for p in pt(punc) if p[0] !='==' and p[-1] !='==']
for sign in operator:
stng = ''
for i,c in enumerate(arr):
stng += c+sign[i] if i<len(arr)-1 else c
left,right = stng.split("==")
if eval(left) == eval(right):
return stng,eval(left),eval(right)
else:return False
arr = '624 * 13 * 9 * 14 * 132 * 54'
punc = ['+','-','*','/','==']
print(equal(punc,arr))
('624/13==9*14-132+54', 48.0, 48)
唯一满足的结果:('624/13==9*14-132+54', 48.0, 48)
作者介绍
c
codeye
V1