Кривая нормального распределения и случайное число в LUA - PullRequest
1 голос
/ 19 января 2020

Скажем, у меня есть диапазон чисел 1-1000. math.random (1,1000) дал бы мне равный шанс получить каждое число. Вместо этого я хочу построить кривую распределения, чтобы вероятность получения 1 равнялась вероятности получения 1000, но вероятность получения 500, например, гораздо более распространена. Как бы я go сделал это?

1 Ответ

2 голосов
/ 20 января 2020
function norm1000()
   local x 
   repeat
      x = math.ceil(math.log(1/math.random())^.5*math.cos(math.pi*math.random())*150+500)
   until x >= 1 and x <= 1000
   return x
end
...