Ver Mensaje Individual
  #7 (permalink)  
Antiguo 26/09/2010, 23:51
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Multiplicación en listas

Código Python:
Ver original
  1. from random import randint
  2.  
  3. def getRandomString(size):
  4.     #Regresa una lista de tamanio size con 0's y 1's
  5.     return [randint(0, 1) for i in xrange(size)]
  6.  
  7. def evalCoeffs(coeffs, randlist):
  8.     #Asumo que randlist y coeffs tienen el mismo tamanio
  9.     size = len(randlist)
  10.     #Si no llegan a tener el mismo tamanio lanzara una excepcion
  11.     aux = [coeffs[i] * randlist[i] for i in xrange(size)]
  12.     #Regreso la suma de multiplicar los items de coeffs y randlist
  13.     #Y ademas regreso aux, que es multiplicacion de las listas
  14.     return sum(aux), aux
  15.  
  16. def evalFactibility(coeffs, randlist):
  17.     #No tengo idea de que haga evalFactibility
  18.     #Se quede regresar True si cumple con algo
  19.     #Y false si no cumple ese algo
  20.     suma, rlist = evalCoeffs(coeffs, randlist)
  21.     #Supuse que si la suma es mayor o igual a 0 entonces es factible
  22.     #Corrigeme si estoy mal por que no se que es lo hace esta funcion
  23.     if suma >= 0:
  24.         return True
  25.     return False
  26.    
  27.    
  28. def foundInitialSolutions(lcoeffs):
  29.     initialSolutions = []
  30.     for coeffs in lcoeffs:
  31.         size = len(coeffs)
  32.         vs = getRandomString(size)
  33.         while not evalFactibility(coeffs, vs):
  34.             vs = getRandomString(size)
  35.         initialSolutions.append(vs)
  36.     return initialSolutions
  37.  
  38. list_of_coeffs = [
  39.                   [1,   1,  1,  2,  1],
  40.                   [7,   0,  3, -4,  3],
  41.                   [11, -6,  0,  3, -3]
  42.                  ]
  43. inits = foundInitialSolutions(list_of_coeffs)
  44. print list_of_coeffs
  45. print inits

Sigo sin saber BIEN que es lo que hace evalFactibility.