首页 > php教程 > php手册 > 正文

按照 百分比,求概率 PHP

WBOY
发布: 2016-06-06 20:07:20
原创
1865 人浏览过

因为一次工程,需要用到按比例随机分配。我在百度能搜索:按照 百分比,求概率。结果都是一些比较混乱的代码。 找到一个看似能用的,大致看了一下,好像挺复杂的,仔细分析了一下代码,有很严重的Bug。 于是自己写一个了,拿出来分享一下吧,抛砖引玉

因为一次工程,需要用到按比例随机分配。我在百度能搜索:按照 百分比,求概率。结果都是一些比较混乱的代码。
找到一个看似能用的,大致看了一下,好像挺复杂的,仔细分析了一下代码,有很严重的Bug。

于是自己写一个了,拿出来分享一下吧,抛砖引玉啊。

php 版本的,当然 ,明白思路之后,别的语言的都很容易搞定。


假设 有四个选项:a 占 10%,b占20% ,C占30% , d 占 40% ,原理就是现获取随机数,然后找区间。
当然了,选项的数量可以任意。
目前默认是 总和是 100% 。如果需要别的数,修改 随机数的范围即可。
这个算法,比较简单,效率也还算高。

当然因为是 rand() ,所以产生的是伪随机数,不是真正意义上的随机,能凑合着用吧。

/*
* ---a------b------------c---------d
* 1----11---------30--------60---------100
* 百分比 概率选择
*/
$data = array(
    'a' => 10 ,
    'b' => 20 ,
    'c' => 30 ,
    'd' => 40
);
echo randomSelect( $data ); 
function randomSelect( &$array ){
    $datas = $array ;
    if( !is_array($datas) || count($datas) == 0 )
        return ;
    asort($datas); //按照大小排序
    $random = rand(1,100);
    $sum = 0 ;
    $flag = '';
    foreach($datas as $key => $data ){
        $sum += $data ;
        if( $random 
    <p class="copyright">
        原文地址:按照 百分比,求概率 PHP, 感谢原作者分享。
    </p>
    
    


登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!