stats_rand_gen_normal

(PECL stats >= 1.0.0)

stats_rand_gen_normal从正态分布生成单个随机偏差

描述

stats_rand_gen_normal(float $av, float $sd): float

返回来自均值为 av、标准差为 sd 的正态分布的随机偏差。

参数

av

正态分布的均值

sd

正态分布的标准差

返回值

随机偏差

添加注释

用户贡献的注释 1 个注释

4
KEINOS
4 年前
"stats_rand_gen_normal()" 的替代方法。

<?php
/**
* 基于“Box–Muller 变换”的随机偏差生成器。
*
* @ref https://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform
*
* @param float|int $av 平均值/均值
* @param float|int $sd 标准差
* @return float
*/
if (! function_exists('stats_rand_gen_normal')) {
function
stats_rand_gen_normal($av, $sd): float
{
$x = mt_rand() / mt_getrandmax();
$y = mt_rand() / mt_getrandmax();

return
sqrt(-2 * log($x)) * cos(2 * pi() * $y) * $sd + $av;
}
}
?>
To Top