国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php 抽獎(jiǎng)概率算法

Jason / 2795人閱讀

摘要:隨機(jī)數(shù)理論上是概率均等的,那么相應(yīng)的區(qū)間所含數(shù)的多少就體現(xiàn)了抽獎(jiǎng)物品概率的不同。

/* 
 * 不同概率的抽獎(jiǎng)原理就是把0到*(比重總數(shù))的區(qū)間分塊
 * 分塊的依據(jù)是物品占整個(gè)的比重,再根據(jù)隨機(jī)數(shù)種子來(lái)產(chǎn)生0-* 中的某個(gè)數(shù)
 * 判斷這個(gè)數(shù)是落在哪個(gè)區(qū)間上,區(qū)間對(duì)應(yīng)的就是抽到的那個(gè)物品。
 * 隨機(jī)數(shù)理論上是概率均等的,那么相應(yīng)的區(qū)間所含數(shù)的多少就體現(xiàn)了抽獎(jiǎng)物品概率的不同。
 */  
function get_rand($proArr) 
{   
    $result = array();
    foreach ($proArr as $key => $val) { 
        $arr[$key] = $val["v"]; 
    }  
    $proSum = array_sum($arr);      // 計(jì)算總權(quán)重
    $randNum = mt_rand(1, $proSum);
    $d1 = 0;
    $d2 = 0;
    for ($i=0; $i < count($arr); $i++)
    {
        $d2 += $arr[$i];
        if($i==0)
        {
            $d1 = 0;
        }
        else
        {
            $d1 += $arr[$i-1];
        }
        if($randNum >= $d1 && $randNum <= $d2)
        {
            $result = $proArr[$i];
        }
    }
    unset ($arr); 
    return $result;
}

 /* 
 * 使用較多的為這個(gè)方法
 */ 
function get_rand1($proArr) {   
    $result = array();
    foreach ($proArr as $key => $val) { 
        $arr[$key] = $val["v"]; 
    } 
    // 概率數(shù)組的總概率  
    $proSum = array_sum($arr);        
    asort($arr);
    // 概率數(shù)組循環(huán)   
    foreach ($arr as $k => $v) {   
        $randNum = mt_rand(1, $proSum);   
        if ($randNum <= $v) {   
            $result = $proArr[$k];   
            break;   
        } else {   
            $proSum -= $v;   
        }         
    }     
    return $result;   
}   
/*
 * 獎(jiǎng)項(xiàng)數(shù)組 
 * 獎(jiǎng)品id,名稱,比重 
 */

$arr = array(   
    array("id"=>1,"name"=>"特等獎(jiǎng)","v"=>1),
    array("id"=>2,"name"=>"一等獎(jiǎng)","v"=>5),
    array("id"=>3,"name"=>"二等獎(jiǎng)","v"=>10),
    array("id"=>4,"name"=>"三等獎(jiǎng)","v"=>12),
    array("id"=>5,"name"=>"四等獎(jiǎng)","v"=>22),
    array("id"=>6,"name"=>"沒(méi)中獎(jiǎng)","v"=>50)
);   

測(cè)試結(jié)果(10000次):
get_rand():
    count_1:0 count_2:490 count_3:1021 count_4:1172 count_5:2172 count_6:5145
    特等獎(jiǎng)中獎(jiǎng)率全為:0
get_rand1():
    count_1:92 count_2:477 count_3:1017 count_4:1195 count_5:2264 count_6:4955
總體感覺(jué) get_rand1() 更準(zhǔn)確些......


 

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/22025.html

相關(guān)文章

  • jQuery+PHP實(shí)現(xiàn)砸金蛋抽獎(jiǎng)

    摘要:演示下載地址效果圖三個(gè)金蛋一把錘子及中獎(jiǎng)結(jié)果代碼如下錘子當(dāng)鼠標(biāo)滑向金蛋時(shí),錘子會(huì)僅靠金蛋右上方,通過(guò)來(lái)控制位置。當(dāng)揮動(dòng)錘子砸向金蛋前,我們先把金蛋中的數(shù)字編號(hào)隱藏起來(lái)。最后,我們向后臺(tái)發(fā)送一個(gè)請(qǐng)求,后臺(tái)程序會(huì)處理獎(jiǎng)項(xiàng)分配并把中獎(jiǎng)結(jié)果返回。 演示下載地址:http://www.erdangjiade.com/js...效果圖:showImg(https://segmentfault.co...

    Invoker 評(píng)論0 收藏0
  • jQuery+PHP實(shí)現(xiàn)砸金蛋抽獎(jiǎng)

    摘要:演示下載地址效果圖三個(gè)金蛋一把錘子及中獎(jiǎng)結(jié)果代碼如下錘子當(dāng)鼠標(biāo)滑向金蛋時(shí),錘子會(huì)僅靠金蛋右上方,通過(guò)來(lái)控制位置。當(dāng)揮動(dòng)錘子砸向金蛋前,我們先把金蛋中的數(shù)字編號(hào)隱藏起來(lái)。最后,我們向后臺(tái)發(fā)送一個(gè)請(qǐng)求,后臺(tái)程序會(huì)處理獎(jiǎng)項(xiàng)分配并把中獎(jiǎng)結(jié)果返回。 演示下載地址:http://www.erdangjiade.com/js...效果圖:showImg(https://segmentfault.co...

    kaka 評(píng)論0 收藏0
  • jQuery+PHP實(shí)現(xiàn)砸金蛋抽獎(jiǎng)

    摘要:演示下載地址效果圖三個(gè)金蛋一把錘子及中獎(jiǎng)結(jié)果代碼如下錘子當(dāng)鼠標(biāo)滑向金蛋時(shí),錘子會(huì)僅靠金蛋右上方,通過(guò)來(lái)控制位置。當(dāng)揮動(dòng)錘子砸向金蛋前,我們先把金蛋中的數(shù)字編號(hào)隱藏起來(lái)。最后,我們向后臺(tái)發(fā)送一個(gè)請(qǐng)求,后臺(tái)程序會(huì)處理獎(jiǎng)項(xiàng)分配并把中獎(jiǎng)結(jié)果返回。 演示下載地址:http://www.erdangjiade.com/js...效果圖:showImg(https://segmentfault.co...

    genedna 評(píng)論0 收藏0
  • jQuery+PHP實(shí)現(xiàn)砸金蛋抽獎(jiǎng)

    摘要:演示下載地址效果圖三個(gè)金蛋一把錘子及中獎(jiǎng)結(jié)果代碼如下錘子當(dāng)鼠標(biāo)滑向金蛋時(shí),錘子會(huì)僅靠金蛋右上方,通過(guò)來(lái)控制位置。當(dāng)揮動(dòng)錘子砸向金蛋前,我們先把金蛋中的數(shù)字編號(hào)隱藏起來(lái)。最后,我們向后臺(tái)發(fā)送一個(gè)請(qǐng)求,后臺(tái)程序會(huì)處理獎(jiǎng)項(xiàng)分配并把中獎(jiǎng)結(jié)果返回。 演示下載地址:http://www.erdangjiade.com/js...效果圖:showImg(https://segmentfault.co...

    Alliot 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<