一个 friend 分享了这个难题:

两天后,我最终在纸上解决了问题。毫无疑问,一台计算机可以在一秒钟内强行破解所有解决方案。
怎么会我尝试生成所有字符串a.b.c.d,并在其中插入字母数字和点运算符,但是错过了我的解决方案。

奖励难题:

  • 如何从1,5,6,7赚11?
  • 如何从1,5,6,7制作16?
  • 最佳答案

    一个明显的方法可能是:

  • 您可以从具有四个数字的矢量S开始:S = ( 1, 5, 6, 7 )
  • a中选择任意两个数字bS,从S中删除它们
  • ab应用任意算术运算,从而获得新的数字c(注意避免被零除,并在问题需要时验证精确除法)
  • c包含在S中,从而获得S'
  • 从第1步继续,现在使用S'代替S

  • 在步骤2(选择两个数字)和步骤3(选择操作)中执行蛮力分支。应该重复该循环,直到S减少到只有1个元素为止,这是该特定蛮力分支的结果。

    方括号未明确使用,但隐式存在。

    如果一个分支以21中的S结尾,则您有一个解决方案,此时可以终止,也可以继续分支以搜索其他解决方案。

    关于algorithm - 如何用暴力破解算术难题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29353375/

    10-12 18:06