用蟒蛇求解方程

有一个问题像这样:

1 2 3 4 5 6 7 8 9 = 1942XXXXXXXX

X= 必须是 x,+,-,÷ 运算符或什么都不是(89,123 可以是等)

我该如何用蟒蛇解决这个问题?

谢谢。


喵喵时光机
浏览 85回答 2
2回答

一只甜甜圈

你可以从下面这样开始:from itertools import producttarget = 1942test_str = "1{0[0]}2{0[1]}3{0[2]}4{0[3]}5{0[4]}6{0[5]}7{0[6]}8{0[7]}9"for a in product(["*", "", "+", "/", "-", ""], repeat=8): # Iterate all posibilites  result_str = test_str.format(a)  if eval(result_str) == target:    print(result_str)    break并进行优化,使其更易于扩展到更多数字。但对于您的特定问题,这工作正常。我找到了这个解决方案:1*2/3+4*56*78/9如果您需要更多信息,请查看评估。

明月笑刀无情

你可以从蟒蛇使用模块parserimport parserformula = "1 + 2 + 3 + 4 + 5 * 6 * 7 * 8 * 9"code = parser.expr(formula).compile()print eval(code)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python