我做了一个项目,使用数字和数学运算符的组合来创建方程,以获得预期的数字
鉴于:
time to create the equation, set of number, set of operator, a goal
职能包括:
创建编号和运算符的顺序
评估序列(以获得结果)
变异序列
获取最佳序列,其中序列结果=目标
问题:
我需要得到sequence
和time
,其中result
等于goal
以下是我上一次试用的完整脚本:
self.goal = 22
self.time = 4
self.sequence = sequence
self.BestSequence = []
def step(self):
while self.time > 0:
self.time -= 1
self.createSeqeuence () #create sequence
self.evaluate() #evaluate sequence
self.allResult.append(self.evaluate()) #make list of result within time
self.mutateSequence() #modify sequence
self.getBestSequence() #after time = 0, get the best sequence from allResult where result = goal
print(self.result, self.BestSequence,self.time) #show
def createSeqeuence (self)
def evaluate(self)
def changeSequence(self)
结果:
time sequence result
1 ['12','+','8'] 20
2 ['10','+','8'] 18
3 ['5','*','3'] 15
4 ['10','*','2','+','2'] 22
问题>&燃气轮机&燃气轮机&燃气轮机
def getBestSequence(self):
if self.leadTime > 0:
for j in self.allResult:
self.BestSequence = [k for k in self.sequence if j == self.goal]
return
我希望得到:[22, ['10','*','2','+','2'], 4 ]
,但我得到了:[10 None 0]
注意函数并不总是在时间内得到结果=目标的序列。所以def getBestSequence ()
可能返回[]
请指教
目前没有回答
相关问题 更多 >
编程相关推荐