当前位置: 首页>>代码示例>>Python>>正文


Python random.rand_randint函数代码示例

本文整理汇总了Python中random.rand_randint函数的典型用法代码示例。如果您正苦于以下问题:Python rand_randint函数的具体用法?Python rand_randint怎么用?Python rand_randint使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了rand_randint函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: GTreeMutatorIntegerRange

def GTreeMutatorIntegerRange(genome, **args):
   """ The mutator of GTree, Integer Range Mutator

   Accepts the *rangemin* and *rangemax* genome parameters, both optional.

   .. versionadded:: 0.6
      The *GTreeMutatorIntegerRange* function
   """
   if args["pmut"] <= 0.0:
      return 0
   elements = len(genome)
   mutations = args["pmut"] * elements

   range_min = genome.getParam("rangemin", Consts.CDefRangeMin)
   range_max = genome.getParam("rangemax", Consts.CDefRangeMax)

   if mutations < 1.0:
      mutations = 0
      for i in xrange(len(genome)):
         if Util.randomFlipCoin(args["pmut"]):
            mutations += 1
            rand_node = genome.getRandomNode()
            random_int = rand_randint(range_min, range_max)
            rand_node.setData(random_int)

   else:
      for it in xrange(int(round(mutations))):
         rand_node = genome.getRandomNode()
         random_int = rand_randint(range_min, range_max)
         rand_node.setData(random_int)

   return int(mutations)
开发者ID:MaximilianoRios,项目名称:Pyevolve,代码行数:32,代码来源:Mutators.py

示例2: G1DListCrossoverTwoPoint

def G1DListCrossoverTwoPoint(genome, **args):
   """ The G1DList crossover, Two Point

   .. warning:: You can't use this crossover method for lists with just one or two elements.

   """
   sister = None
   brother = None
   gMom = args["mom"]
   gDad = args["dad"]
   
   if len(gMom) < 3:
      Util.raiseException("The 1D List has less than 3 elements, can't use the Two Point Crossover method !", TypeError)

   cuts = [0, 0]
   # Keep generating random cuts until they are in different places
   while cuts[0] == cuts[1]:
       cuts = [rand_randint(1, len(gMom)-1), rand_randint(1, len(gMom)-1)]

   if cuts[0] > cuts[1]:
      Util.listSwapElement(cuts, 0, 1)

   if args["count"] >= 1:
      sister = gMom.clone()
      sister.resetStats()
      sister[cuts[0]:cuts[1]] = gDad[cuts[0]:cuts[1]]

   if args["count"] == 2:
      brother = gDad.clone()
      brother.resetStats()
      brother[cuts[0]:cuts[1]] = gMom[cuts[0]:cuts[1]]

   return (sister, brother)
开发者ID:computron,项目名称:Pyevolve,代码行数:33,代码来源:Crossovers.py

示例3: G1DListMutatorSIM

def G1DListMutatorSIM(genome, **args):
   """ The mutator of G1DList, Simple Inversion Mutation

   .. note:: this mutator is :term:`Data Type Independent`

   """
   mutations = 0
   if args["pmut"] <= 0.0:
      return 0

   cuts = [rand_randint(0, len(genome)), rand_randint(0, len(genome))]

   if cuts[0] > cuts[1]:
      Util.listSwapElement(cuts, 0, 1)

   if (cuts[1] - cuts[0]) <= 0:
      cuts[1] = rand_randint(cuts[0], len(genome))

   if Util.randomFlipCoin(args["pmut"]):
      part = genome[cuts[0]:cuts[1]]
      if len(part) == 0:
         return 0
      part.reverse()
      genome[cuts[0]:cuts[1]] = part
      mutations += 1

   return mutations
开发者ID:MaximilianoRios,项目名称:Pyevolve,代码行数:27,代码来源:Mutators.py

示例4: G2DBinaryStringMutatorFlip

def G2DBinaryStringMutatorFlip(genome, **args):
   """ A flip mutator for G2DBinaryString
   
   .. versionadded:: 0.6
      The *G2DBinaryStringMutatorFlip* function
   """
   if args["pmut"] <= 0.0: return 0
   height, width = genome.get_size()
   elements = height * width

   mutations = args["pmut"] * elements

   if mutations < 1.0:
      mutations = 0
      
      for i in xrange(genome.get_height()):
         for j in xrange(genome.get_width()):
            if utils.random_flip_coin(args["pmut"]):
               if genome[i][j] == 0: genome.set_item(i, j, 1)
               else:                 genome.set_item(i, j, 0)
               mutations += 1
   else: 

      for it in xrange(int(round(mutations))):
         which_x = rand_randint(0, genome.get_width()-1)
         which_y = rand_randint(0, genome.get_height()-1)

         if genome[i][j] == 0: genome.set_item(which_y, which_x, 1)
         else:                 genome.set_item(which_y, which_x, 0)

   return int(mutations)
开发者ID:bianchimro,项目名称:Pyevolve,代码行数:31,代码来源:mutators.py

示例5: G1DListCrossoverOX

def G1DListCrossoverOX(genome, **args):
   """ The OX Crossover for G1DList  (order crossover) """
   sister = None
   brother = None
   gMom = args["mom"]
   gDad = args["dad"]
   listSize = len(gMom)

   c1, c2 = [rand_randint(1, len(gMom)-1), rand_randint(1, len(gMom)-1)]

   while c1 == c2:
      c2 = rand_randint(1, len(gMom)-1)

   if c1 > c2:
      h = c1
      c1 = c2
      c2 = h

   if args["count"] >= 1:
      sister = gMom.clone()
      sister.resetStats()
      P1 = [ c for c in gMom[c2:] + gMom[:c2] if c not in gDad[c1:c2] ]
      sister.genomeList = P1[listSize - c2:] + gDad[c1:c2] + P1[:listSize-c2]
    
   if args["count"] == 2:
      brother = gDad.clone()
      brother.resetStats()
      P2 = [ c for c in gDad[c2:] + gDad[:c2] if c not in gMom[c1:c2] ]
      brother.genomeList = P2[listSize - c2:] + gMom[c1:c2] + P2[:listSize-c2]

   assert listSize == len(sister)
   assert listSize == len(brother)

   return (sister, brother)
开发者ID:DamionKing,项目名称:Pyevolve,代码行数:34,代码来源:Crossovers.py

示例6: G2DListMutatorIntegerRange

def G2DListMutatorIntegerRange(genome, **args):
   """ Simple integer range mutator for G2DList

   Accepts the *rangemin* and *rangemax* genome parameters, both optional.

   """
   if args["pmut"] <= 0.0: return 0
   height, width = genome.get_size()
   elements = height * width

   mutations = args["pmut"] * elements

   range_min = genome.get_param("rangemin", CDefRangeMin)
   range_max = genome.get_param("rangemax", CDefRangeMax)

   if mutations < 1.0:
      mutations = 0
      for i in xrange(genome.get_height()):
         for j in xrange(genome.get_width()):
            if utils.random_flip_coin(args["pmut"]):
               random_int = rand_randint(range_min, range_max)
               genome.set_item(i, j, random_int)
               mutations += 1

   else: 
      for it in xrange(int(round(mutations))):
         which_x = rand_randint(0, genome.get_width()-1)
         which_y = rand_randint(0, genome.get_height()-1)
         random_int = rand_randint(range_min, range_max)
         genome.set_item(which_y, which_x, random_int)

   return int(mutations)
开发者ID:bianchimro,项目名称:Pyevolve,代码行数:32,代码来源:mutators.py

示例7: G1DListCrossoverTwoPoint

def G1DListCrossoverTwoPoint(genome, **args):
    """ The G1DList crossover, Two Point

   .. warning:: You can't use this crossover method for lists with just one element.

   """
    sister = None
    brother = None
    gMom = args["mom"]
    gDad = args["dad"]

    if len(gMom) == 1:
        utils.raise_exception("The 1D List have one element, can't use the Two Point Crossover method !", TypeError)

    cuts = [rand_randint(1, len(gMom) - 1), rand_randint(1, len(gMom) - 1)]

    if cuts[0] > cuts[1]:
        utils.list_swap_element(cuts, 0, 1)

    if args["count"] >= 1:
        sister = gMom.clone()
        sister.reset_stats()
        sister[cuts[0] : cuts[1]] = gDad[cuts[0] : cuts[1]]

    if args["count"] == 2:
        brother = gDad.clone()
        brother.reset_stats()
        brother[cuts[0] : cuts[1]] = gMom[cuts[0] : cuts[1]]

    return (sister, brother)
开发者ID:bianchimro,项目名称:Pyevolve,代码行数:30,代码来源:crossovers.py

示例8: G1DBinaryStringXTwoPoint

def G1DBinaryStringXTwoPoint(genome, **args):
   """ The 1D Binary String crossover, Two Point

   .. warning:: You can't use this crossover method for binary strings with length of 1.

   """
   sister = None
   brother = None
   gMom = args["mom"]
   gDad = args["dad"]
   
   if len(gMom) == 1:
      Util.raiseException("The Binary String have one element, can't use the Two Point Crossover method !", TypeError)

   cuts = [rand_randint(1, len(gMom)-1), rand_randint(1, len(gMom)-1)]

   if cuts[0] > cuts[1]:
      Util.listSwapElement(cuts, 0, 1)

   if args["count"] >= 1:
      sister = gMom.clone()
      sister.resetStats()
      sister[cuts[0]:cuts[1]] = gDad[cuts[0]:cuts[1]]

   if args["count"] == 2:
      brother = gDad.clone()
      brother.resetStats()
      brother[cuts[0]:cuts[1]] = gMom[cuts[0]:cuts[1]]

   return (sister, brother)
开发者ID:DamionKing,项目名称:Pyevolve,代码行数:30,代码来源:Crossovers.py

示例9: G1DListMutatorIntegerRange

def G1DListMutatorIntegerRange(genome, **args):
   """ Simple integer range mutator for G1DList

   Accepts the *rangemin* and *rangemax* genome parameters, both optional.

   """
   if args["pmut"] <= 0.0:
      return 0
   listSize = len(genome)
   mutations = args["pmut"] * listSize

   if mutations < 1.0:
      mutations = 0
      for it in xrange(listSize):
         if Util.randomFlipCoin(args["pmut"]):
            genome[it] = rand_randint(genome.getParam("rangemin", Consts.CDefRangeMin),
                                      genome.getParam("rangemax", Consts.CDefRangeMax))
            mutations += 1

   else:
      for it in xrange(int(round(mutations))):
         which_gene = rand_randint(0, listSize - 1)
         genome[which_gene] = rand_randint(genome.getParam("rangemin", Consts.CDefRangeMin),
                                           genome.getParam("rangemax", Consts.CDefRangeMax))

   return int(mutations)
开发者ID:MaximilianoRios,项目名称:Pyevolve,代码行数:26,代码来源:Mutators.py

示例10: G2DListMutatorRealGaussian

def G2DListMutatorRealGaussian(genome, **args):
    """ A gaussian mutator for G2DList of Real

    Accepts the *rangemin* and *rangemax* genome parameters, both optional. Also
    accepts the parameter *gauss_mu* and the *gauss_sigma* which respectively
    represents the mean and the std. dev. of the random distribution.

    """
    if args["pmut"] <= 0.0:
        return 0
    height, width = genome.getSize()
    elements = height * width

    mutations = args["pmut"] * elements

    mu = genome.getParam("gauss_mu")
    sigma = genome.getParam("gauss_sigma")

    if mu is None:
        mu = Consts.CDefG2DListMutRealMU

    if sigma is None:
        sigma = Consts.CDefG2DListMutRealSIGMA

    if mutations < 1.0:
        mutations = 0

        for i in xrange(genome.getHeight()):
            for j in xrange(genome.getWidth()):
                if Util.randomFlipCoin(args["pmut"]):
                    final_value = genome[i][j] + rand_gauss(mu, sigma)

                    final_value = min(final_value, genome.getParam(
                        "rangemax", Consts.CDefRangeMax))
                    final_value = max(final_value, genome.getParam(
                        "rangemin", Consts.CDefRangeMin))

                    genome.setItem(i, j, final_value)
                    mutations += 1
    else:

        for it in xrange(int(round(mutations))):
            which_x = rand_randint(0, genome.getWidth() - 1)
            which_y = rand_randint(0, genome.getHeight() - 1)

            final_value = genome[which_y][which_x] + rand_gauss(mu, sigma)

            final_value = min(final_value, genome.getParam(
                "rangemax", Consts.CDefRangeMax))
            final_value = max(final_value, genome.getParam(
                "rangemin", Consts.CDefRangeMin))

            genome.setItem(which_y, which_x, final_value)

    return int(mutations)
开发者ID:erikreed-public,项目名称:Pyevolve,代码行数:55,代码来源:Mutators.py

示例11: G2DListMutatorIntegerGaussianGradient

def G2DListMutatorIntegerGaussianGradient(genome, **args):
    """ A gaussian mutator for G2DList of Integers

    Accepts the *rangemin* and *rangemax* genome parameters, both optional.

    This routine generates a gaussian value with mu=1.0 and std=0.0333 and then
    the gene is multiplied by this value. This will cause the gene to drift
    no matter how large it is.

    """
    if args["pmut"] <= 0.0:
        return 0
    height, width = genome.getSize()
    elements = height * width

    mutations = args["pmut"] * elements

    mu = Consts.CDefGaussianGradientMU
    sigma = Consts.CDefGaussianGradientSIGMA

    if mutations < 1.0:
        mutations = 0

        for i in xrange(genome.getHeight()):
            for j in xrange(genome.getWidth()):
                if Util.randomFlipCoin(args["pmut"]):
                    final_value = int(
                        genome[i][j] * abs(rand_gauss(mu, sigma)))

                    final_value = min(final_value, genome.getParam(
                        "rangemax", Consts.CDefRangeMax))
                    final_value = max(final_value, genome.getParam(
                        "rangemin", Consts.CDefRangeMin))

                    genome.setItem(i, j, final_value)
                    mutations += 1
    else:

        for it in xrange(int(round(mutations))):
            which_x = rand_randint(0, genome.getWidth() - 1)
            which_y = rand_randint(0, genome.getHeight() - 1)

            final_value = int(genome[which_y][which_x]
                              * abs(rand_gauss(mu, sigma)))

            final_value = min(final_value, genome.getParam(
                "rangemax", Consts.CDefRangeMax))
            final_value = max(final_value, genome.getParam(
                "rangemin", Consts.CDefRangeMin))

            genome.setItem(which_y, which_x, final_value)

    return int(mutations)
开发者ID:erikreed-public,项目名称:Pyevolve,代码行数:53,代码来源:Mutators.py

示例12: crossover_gabil

def crossover_gabil(genome, **args):
#def crossover_gabil(gDad, gMom):
	sister = None
	brother = None
	gMom = args["mom"]
	gDad = args["dad"]
	
	
	if (len(gMom) < len(gDad)):
		gMom , gDad = gDad, gMom
	
	splitMom = [ rand_randint( 1 , len(gMom) + 1) , rand_randint(1, len(gMom) + 1)]
	
	if (splitMom [1] < splitMom[0] ):
		splitMom[0],splitMom[1] = splitMom[1],splitMom[0] 

	s1 = gMom[0:splitMom[0]]
	s2 = gMom[splitMom[0]:splitMom[1]]
	s3 = gMom[splitMom[1]:len(gMom)]
	
	
	nRulesD = len(gDad) / RULE_SIZE;
	splitDad = [ rand_randint( 1 , nRulesD + 1) , rand_randint(1, nRulesD + 1)]
	
	if (splitDad[0] > splitDad[1] ):
		splitDad[0], splitDad[1] = splitDad[1], splitDad[0]
	
	positionDad = splitMom[0] % RULE_SIZE
	positionDad1 = splitMom[1] % RULE_SIZE
	
	n1 = splitDad[0] + positionDad
	n2 = splitDad[1] + positionDad1

	if (n2 < n1):
		n1,n2 = n2,n1

	d1 = gDad[0:n1]
	d2 = gDad[n1:n2]
	d3 = gDad[n2:len(gDad)]
	
	sister = gMom.clone()
	sister.resetStats()
	sister.genomeString = s1 + d2 + s3
	sister.stringLength = len(s1 + d2 + s3)
	
	brother = gDad.clone()
	brother.resetStats()
	brother.genomeString = d1 + s2 + d3
	brother.stringLength = len(d1 + s2 + d3)
	
	return (sister, brother)
开发者ID:julianaleon8,项目名称:IA2_2014,代码行数:51,代码来源:gabil.py

示例13: G2DListMutatorRealGaussianGradient

def G2DListMutatorRealGaussianGradient(genome, **args):
    """ A gaussian gradient mutator for G2DList of Real

    Accepts the *rangemin* and *rangemax* genome parameters, both optional.

    The difference is that this multiplies the gene by gauss(1.0, 0.0333), allowing
    for a smooth gradient drift about the value.

    """
    if args["pmut"] <= 0.0:
        return 0
    height, width = genome.getSize()
    elements = height * width

    mutations = args["pmut"] * elements

    mu = Consts.CDefGaussianGradientMU
    sigma = Consts.CDefGaussianGradientSIGMA

    if mutations < 1.0:
        mutations = 0

        for i in xrange(genome.getHeight()):
            for j in xrange(genome.getWidth()):
                if Util.randomFlipCoin(args["pmut"]):
                    final_value = genome[i][j] * abs(rand_gauss(mu, sigma))

                    final_value = min(final_value, genome.getParam(
                        "rangemax", Consts.CDefRangeMax))
                    final_value = max(final_value, genome.getParam(
                        "rangemin", Consts.CDefRangeMin))

                    genome.setItem(i, j, final_value)
                    mutations += 1
    else:

        for it in xrange(int(round(mutations))):
            which_x = rand_randint(0, genome.getWidth() - 1)
            which_y = rand_randint(0, genome.getHeight() - 1)

            final_value = genome[which_y][which_x] * abs(rand_gauss(mu, sigma))

            final_value = min(final_value, genome.getParam(
                "rangemax", Consts.CDefRangeMax))
            final_value = max(final_value, genome.getParam(
                "rangemin", Consts.CDefRangeMin))

            genome.setItem(which_y, which_x, final_value)

    return int(mutations)
开发者ID:erikreed-public,项目名称:Pyevolve,代码行数:50,代码来源:Mutators.py

示例14: G1DBinaryStringMutatorFlip_GABIL

def G1DBinaryStringMutatorFlip_GABIL(genome, **args):
	if args["pmut"] <= 0.0:
		return 0
	stringLength = len(genome)
	
	mutations = args["pmut"] * (stringLength)
	
	if mutations < 1.0:
		mutations = 0
		for it in xrange(stringLength):
			if Util.randomFlipCoin(args["pmut"]):
				if genome.genomeString[it] == '0': 
					genome.genomeString[it] = '1'
				else: 
					genome.genomeString[it] = '0'
				mutations += 1.0
	else:
		for it in xrange(int(round(mutations))):
			which = rand_randint(0, stringLength - 1)
			if genome.genomeString[which] == '0':
				genome.genomeString[which] = '1'
			else:
				genome.genomeString[which] = '0'
	
	return int(mutations)
开发者ID:julianaleon8,项目名称:IA2_2014,代码行数:25,代码来源:gabil.py

示例15: __init__

 def __init__(self, host, port, group_name):
    super(WANMigration, self).__init__()
    self.setMyself(host, port)
    self.setGroupName(group_name)
    self.topologyGraph = None
    self.serverThread = Network.UDPThreadServer(host, port)
    self.clientThread = Network.UDPThreadUnicastClient(self.myself[0], rand_randint(30000, 65534))
开发者ID:DamionKing,项目名称:Pyevolve,代码行数:7,代码来源:Migration.py


注:本文中的random.rand_randint函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。