document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #Funcion que genera numeros aleatorios
  2. #de la distribucion poisson dada una
  3. #variable lambda
  4. def poissonrandom(lamb):
  5.  uniform = random.random()
  6.  p = math.exp(-lamb)
  7.  suma = p
  8.  #print uniform
  9.  if suma >= uniform:
  10.    return 0
  11.  for i in range(1, 10000):
  12.    p = p * (float(lamb)/float(i))
  13.    #print p
  14.    suma = suma + p
  15.    if (suma >= uniform):
  16.     break
  17.  return i
  18. #Funcion que genera toda una secuencia de n
  19. #numeros aleatorios de la distribucion poisson
  20. def secuencia_poisson(n, lamb, n_canastas):
  21.  poisson_randoms = []
  22.  canastas = []
  23.  inferior = 0
  24.  superior = 2
  25.  file = open("test.dat", "w")
  26.  for i in range(n):
  27.    poisson_randoms.append(poissonrandom(lamb))
  28.  
  29.  while len(canastas) != n_canastas:
  30.    canastas.append([inferior, superior, 0])
  31.    inferior = inferior + 2
  32.    superior = superior + 2
  33.  
  34.  for i in range(len(poisson_randoms)):
  35.    for j in range(len(canastas)):
  36.      if poisson_randoms[i] in range(canastas[j][0], canastas[j][1]):
  37.        canastas[j][2] = canastas[j][2] + 1
  38.  for i in range(len(canastas)):
  39.    if canastas[i][2] != 0 :
  40.      file.write("%d %d\\n"%(i, canastas[i][2]))
  41.  file.close()
');