我试图写一个程序,迭代所有可能的简单方程,找到一个值24。我设法完成了这个循环,但有些东西我没有抓住。在
这个想法是有一个3级循环(我猜是θ(n^3)?,im bad with time complexity),这是用来建立一个方程,其中有4个数字(在程序早期随机生成)被添加到我的列表中。在
numList = [x2, x3, x4]
下面是我的代码:
^{pr2}$当由于某种原因,我正在构建和计算的字符串(x)没有重置,而是添加到上一个循环迭代中生成的同一个字符串(它应该是默认值)时,就会出现错误。默认值x随机生成:
x = str(randrange(1, 9))
这对我来说很奇怪,我不确定出了什么问题,循环就像一个没有中断的switch条件语句。以下是我的控制台输出:Pasted to pastebin
有人能告诉我我做错了什么吗?或者代码中发生了什么我看不到的东西 为什么x不被重置,好像它是一个新的字符串正在构建(这是我想要的)?在
编辑:以下是全部来源:equation.py
下面是另一种不依赖
eval
的表达式生成器的方法,它还允许您轻松地使用任何二进制(2个参数)函数和任何顺序的操作:如果存在这样的排列(使用蛮力),您可以使用它来找出操作的排列会产生某种结果:
^{pr2}$问题不是“x没有被重置”。问题是,您的代码并没有被设计为在每次传递中都使用三个运算符。因为,如果1是1的话,那么对于1,这个等式是重复的。在
您需要更像这样的逻辑,即显式地使用三个运算符并迭代三个运算符的所有组合:
输出看起来像
^{pr2}$相关问题 更多 >
编程相关推荐