为了账号安全,请及时绑定邮箱和手机立即绑定

用蟒蛇求解方程

用蟒蛇求解方程

喵喵时光机 2022-09-20 16:00:23
有一个问题像这样:1 2 3 4 5 6 7 8 9 = 1942XXXXXXXXX= 必须是 x,+,-,÷ 运算符或什么都不是(89,123 可以是等)我该如何用蟒蛇解决这个问题?谢谢。
查看完整描述

2 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

你可以从下面这样开始:


from itertools import product

target = 1942

test_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


如果您需要更多信息,请查看评估。


查看完整回答
反对 回复 2022-09-20
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

你可以从蟒蛇使用模块parser


import parser

formula = "1 + 2 + 3 + 4 + 5 * 6 * 7 * 8 * 9"

code = parser.expr(formula).compile()

print eval(code)


查看完整回答
反对 回复 2022-09-20
  • 2 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号