Я пытаюсь проверить скорость генерации чисел из нормального распределения с помощью преобразования Box-Muller против полярного метода Марсалья. Говорят, что полярный метод Марсалии, как предполагается, быстрее, чем преобразование Box-Muller, потому что ему не нужно вычислять sin и cos. Однако, когда я кодирую это в Python, это неверно. Может кто-нибудь проверить это или объяснить мне, почему это происходит?Генерация чисел из нормального распределения в Python
def marsaglia_polar():
while True:
x = (random.random() * 2) - 1
y = (random.random() * 2) - 1
s = x * x + y * y
if s < 1:
t = math.sqrt((-2) * math.log(s)/s)
return x * t, y * t
def box_muller():
u1 = random.random()
u2 = random.random()
t = math.sqrt((-2) * math.log(u1))
v = 2 * math.pi * u2
return t * math.cos(v), t * math.sin(v)
Не видя кода !? – tzaman
Мы можем, если вы покажете нам свой код – inspectorG4dget
К сожалению, добавлено !!!! – user2770287