问题描述:在123456789这9个数字中间插入任意多个+和-的组合,使得表达式的值为100,输出所有符合条件的表达式。
但是第一个版本的代码运行速度太慢,大概需要3.5小时。于是昨天推送了中国传媒大学胡凤国老师提出后我来实现的一个三进制算法,使用三进制加法来生成运算符的插入位置,其实也是一种暴力测试,但是由于大幅度减少了无效运算符排列,使得代码运行速度很快,瞬间就能输出结果,详见Python使用超高效算法查找所有类似123-45-67+89=100的组合
后经热心屋友@G_C提醒,第一个版本的暴力测试代码其实是可以优化提速的,于是有了今天的第三个版本的代码。
核心思路:减少不必要的计算。
参考代码与优化要点:
领取专属 10元无门槛券
私享最新 技术干货