Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Funcion que genera numeros aleatorios
- #de la distribucion poisson dada una
- #variable lambda
- def poissonrandom(lamb):
- uniform = random.random()
- p = math.exp(-lamb)
- suma = p
- #print uniform
- if suma >= uniform:
- return 0
- for i in range(1, 10000):
- p = p * (float(lamb)/float(i))
- #print p
- suma = suma + p
- if (suma >= uniform):
- break
- return i
- #Funcion que genera toda una secuencia de n
- #numeros aleatorios de la distribucion poisson
- def secuencia_poisson(n, lamb, n_canastas):
- poisson_randoms = []
- canastas = []
- inferior = 0
- superior = 2
- file = open("test.dat", "w")
- for i in range(n):
- poisson_randoms.append(poissonrandom(lamb))
- while len(canastas) != n_canastas:
- canastas.append([inferior, superior, 0])
- inferior = inferior + 2
- superior = superior + 2
- for i in range(len(poisson_randoms)):
- for j in range(len(canastas)):
- if poisson_randoms[i] in range(canastas[j][0], canastas[j][1]):
- canastas[j][2] = canastas[j][2] + 1
- for i in range(len(canastas)):
- if canastas[i][2] != 0 :
- file.write("%d %d\n"%(i, canastas[i][2]))
- file.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement