handybitesize/ distributed-random
从一定范围内生成具有正态分布的随机数。允许偏斜和舍入。
0.2
2018-08-28 09:31 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- ext-json: *
This package is not auto-updated.
Last update: 2024-09-29 05:21:14 UTC
README
PHP的正态分布随机值
DistributedRandom 允许您在指定范围内生成随机值,强制执行正态分布,而不是像 rand() 等函数提供的均匀分布。
免责声明。这不一定真的是数学。我在生成测试随机对象时使用它。例如,如果我想要生成2000个用户,属于4个用户权限组中的一个,如果我对用户权限组_id进行随机化,我预计每个组将有大约500个用户。然而,我通常希望大多数生成的用户属于权限较低的组,只有少数“管理员”被创建。这个库通过向低端偏斜的随机化来让您实现这一点。
您可以在演示脚本中查看分布类型
php -S localhost:8080 demo/web.php
设置
将库添加到项目的 composer.json 文件中
{ "require": { "handybitesize/distributed-random": "0.*" } }
使用 composer 安装库
$ php composer.phar install
Composer 会将 DistributedRandom 安装到您的 vendor 文件夹中。然后您可以将以下内容添加到您的 .php 文件中,以使用库并启用自动加载。
require_once(__DIR__ . '/vendor/autoload.php');
或者,使用命令行中的 composer 来要求并安装 DistributedRandom
$ php composer.phar require handybitesize/distributed-random:0.*
最低要求
- PHP 5.3
用法
use HandyBiteSize\DistributedRandom\GenerateRandom; //examples here $randomise = new GenerateRandom(); //random double between 0 and 1 distributed around 0.5 $rand = $randomise->random(); //Array of 10 randon doubles between 0 and 1 distributed around 0.5 $rand = $randomise->randomArray(10); //eg //[0.50398172239527, 0.55248558880547, 0.25614964553752, 0.80148380196869, 0.58439718574973, // 0.48014020914308, 0.73432188492932, 0.58615275804089, 0.34302056021055, 0.41324347746747] //random double between 10 and 100 distributed around 10 and rounded to nearest 10 $rand = $randomise->random(10, 100, 10, 10); // array of 10 as above $rand = $randomise->randomArray(10, 10, 100, 10, 10); // eg // [10, 30, 20, 20, 20, 10, 10, 50, 20, 20]
单元测试
待续!
$ cd tests
$ phpunit
许可证
MIT 许可证下授权。