按照 百分比,求概率 PHP

WBOY
リリース: 2016-06-06 20:07:20
オリジナル
1843 人が閲覧しました

因为一次工程,需要用到按比例随机分配。我在百度能搜索:按照 百分比,求概率。结果都是一些比较混乱的代码。 找到一个看似能用的,大致看了一下,好像挺复杂的,仔细分析了一下代码,有很严重的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 学習者の迅速な成長を支援します!