Вы также можете использовать что-то вроде строки ниже, если вам нужно «плавное» распределение.Т.е. распределение будет постепенно изменяться между самыми низкими и самыми высокими значениями с акцентом в приведенном ниже случае на более низкие значения.
private function univenlyDistributedRandom(low:int, high:int):Number
{
return low + (1 - Math.pow(Math.random(), 4)) * (high - low);
}
Вы, конечно, можете использовать любую другую функцию (гиперболу или синус)и т. д.) для создания немного разных вариаций.Хотя одна забавная вещь.Если вы используете какой-либо движок твенинга - возможно, у вас уже есть такие функции!Любая функция замедления, которая не линейно применяется к выводу Math.random()
, будет влиять на распределение "плавным" образом.Так, если, например, вы видите, что функция замедления делает что-то вроде «сначала идет медленно, но потом быстрее, быстрее и даже быстрее», это будет означать, что распределение, которое вы можете получить с помощью этого, будет смещено в сторонуменьшие числа и большие числа будут встречаться реже.