Try again - using resampling and weighted observation model
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
import random
|
||||
import math
|
||||
|
||||
def get_standard_normal_sample():
|
||||
"""Using the Marsaglia Polar method"""
|
||||
# timeit on mac says - 0.915
|
||||
while True:
|
||||
u = random.uniform(-1, 1)
|
||||
v = random.uniform(-1, 1)
|
||||
s = u * u + v * v
|
||||
if s >= 1:
|
||||
continue
|
||||
return u * math.sqrt(-2 * math.log(s) / s)
|
||||
|
||||
def get_gaussian_sample(mean, standard_deviation):
|
||||
return get_standard_normal_sample() * standard_deviation + mean
|
||||
Reference in New Issue
Block a user