求等式成立

alt

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)

本文由 mdnice 多平台发布

猜你喜欢

转载自blog.csdn.net/qq_40523298/article/details/127721289