Ejemplo n.º 1
0
 def args2genes(self,args):#将参数值转化为基因串
     #print args,self.bitgroups
     assert len(args) == len(self.bitgroups)
     genes = []
     items = sorted(args.items())
     for i in xrange(len(items)):
         #print self.argpool[i],items[i],items[i][0],items[i][1]
         pos = locate(self.argpool[i],items[i][1])   #必然可以找到
         #print 'bitgroups[i]/pos',self.bitgroups[i],pos
         genes.extend(helper.int2bits(pos,self.bitgroups[i]))
     #print items,',genes2args:',self.genes2args(genes)    
     #print genes
     return genes
Ejemplo n.º 2
0
 def args2genes(self, args):  #将参数值转化为基因串
     #print args,self.bitgroups
     assert len(args) == len(self.bitgroups)
     genes = []
     items = sorted(args.items())
     for i in xrange(len(items)):
         #print self.argpool[i],items[i],items[i][0],items[i][1]
         pos = locate(self.argpool[i], items[i][1])  #必然可以找到
         #print 'bitgroups[i]/pos',self.bitgroups[i],pos
         genes.extend(helper.int2bits(pos, self.bitgroups[i]))
     #print items,',genes2args:',self.genes2args(genes)
     #print genes
     return genes
Ejemplo n.º 3
0
 def lastStoneWeight(self, stones):
     """
     :type stones: List[int]
     :rtype: int
     """
     # while len(stones) > 1:
     #     stones.sort()
     #     stones.reverse()
     #     stones[0], stones[1] = stones[0]-stones[1], 0
     #     stones.pop(1)
     # if stones[0] == 0:
     #     return(0)
     # else:
     #     return(stones[0])
     stones.sort()
     while len(stones) > 1:
         stone_1, stone_2 = stones.pop(), stones.pop()
         if stone_1 != stone_2:
             stone_rest = stone_1 - stone_2
             stones.insert(locate(stones, stone_rest), stone_rest)
     return stones[0] if len(stones) > 0 else 0
Ejemplo n.º 4
0
def roulette(sums):
    v = random.randint(0, sums[-1])
    return locate(sums, v)
Ejemplo n.º 5
0
def roulette(sums):
    v = random.randint(0, sums[-1])
    return locate(sums, v)