Rumah php教程 PHP源码 抽奖概率 PHP

抽奖概率 PHP

May 26, 2016 am 08:21 AM

抽奖概率

<?php 

function get_rand($proArr) { 
    $result = ''; 

    //概率数组的总概率精度
    $proSum = array_sum($proArr); 

    //概率数组循环
    foreach ($proArr as $key => $proCur) { 
        $randNum = mt_rand(1, $proSum); 
        if ($randNum <= $proCur) { 
            $result = $key; 
            break; 
        } else { 
            $proSum -= $proCur; 
        } 
    } 
    unset ($proArr); 

    return $result; 
}

$prize_arr = array( 
    '0' => array('id'=>1,'prize'=>'平板电脑','v'=>0), 
    '1' => array('id'=>2,'prize'=>'数码相机','v'=>0), 
    '2' => array('id'=>3,'prize'=>'音箱设备','v'=>0), 
    '3' => array('id'=>4,'prize'=>'4G优盘','v'=>0), 
    '4' => array('id'=>5,'prize'=>'10Q币','v'=>1), 
    '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>100), 
);  


//code here eg:unset($prize_arr['0'])
foreach ($prize_arr as $key => $val) { 
    $arr[$val['id']] = $val['v']; 
} 

$rid = get_rand($arr); //根据概率获取奖项id

$res['yes'] = $prize_arr[$rid-1]['prize']; //中奖项
//将中奖项从数组中剔除,剩下未中奖项,如果是数据库验证,这里可以省掉
unset($prize_arr[$rid-1]); 
shuffle($prize_arr); //打乱数组顺序
for($i=0;$i<count($prize_arr);$i++){ 
    $pr[] = $prize_arr[$i]['prize']; 
} 
$res['no'] = $pr; 
echo "<pre>";
print_r($res);
// echo json_encode($res);
Salin selepas log masuk
Salin selepas log masuk

2. [代码]抽奖概率

<?php 

function get_rand($proArr) { 
    $result = ''; 

    //概率数组的总概率精度
    $proSum = array_sum($proArr); 

    //概率数组循环
    foreach ($proArr as $key => $proCur) { 
        $randNum = mt_rand(1, $proSum); 
        if ($randNum <= $proCur) { 
            $result = $key; 
            break; 
        } else { 
            $proSum -= $proCur; 
        } 
    } 
    unset ($proArr); 

    return $result; 
}

$prize_arr = array( 
    '0' => array('id'=>1,'prize'=>'平板电脑','v'=>0), 
    '1' => array('id'=>2,'prize'=>'数码相机','v'=>0), 
    '2' => array('id'=>3,'prize'=>'音箱设备','v'=>0), 
    '3' => array('id'=>4,'prize'=>'4G优盘','v'=>0), 
    '4' => array('id'=>5,'prize'=>'10Q币','v'=>1), 
    '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>100), 
);  


//code here eg:unset($prize_arr['0'])
foreach ($prize_arr as $key => $val) { 
    $arr[$val['id']] = $val['v']; 
} 

$rid = get_rand($arr); //根据概率获取奖项id

$res['yes'] = $prize_arr[$rid-1]['prize']; //中奖项
//将中奖项从数组中剔除,剩下未中奖项,如果是数据库验证,这里可以省掉
unset($prize_arr[$rid-1]); 
shuffle($prize_arr); //打乱数组顺序
for($i=0;$i<count($prize_arr);$i++){ 
    $pr[] = $prize_arr[$i]['prize']; 
} 
$res['no'] = $pr; 
echo "<pre>";
print_r($res);
// echo json_encode($res);
Salin selepas log masuk
Salin selepas log masuk


 以上就是抽奖概率的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Regresi kuantil untuk ramalan kebarangkalian siri masa Regresi kuantil untuk ramalan kebarangkalian siri masa May 07, 2024 pm 05:04 PM

Regresi kuantil untuk ramalan kebarangkalian siri masa

Bagaimana untuk membuat applet loteri excel Bagaimana untuk membuat applet loteri excel Mar 20, 2024 am 11:40 AM

Bagaimana untuk membuat applet loteri excel

Penjelasan terperinci tentang reka bentuk dan pelaksanaan sistem loteri PHP Penjelasan terperinci tentang reka bentuk dan pelaksanaan sistem loteri PHP Mar 01, 2024 am 09:51 AM

Penjelasan terperinci tentang reka bentuk dan pelaksanaan sistem loteri PHP

Cara menggunakan Vue untuk melaksanakan kesan khas roda loteri Cara menggunakan Vue untuk melaksanakan kesan khas roda loteri Sep 19, 2023 am 10:18 AM

Cara menggunakan Vue untuk melaksanakan kesan khas roda loteri

Langkah dan teknik untuk membangunkan fungsi loteri menggunakan PHP Langkah dan teknik untuk membangunkan fungsi loteri menggunakan PHP Feb 29, 2024 pm 04:42 PM

Langkah dan teknik untuk membangunkan fungsi loteri menggunakan PHP

Perkongsian amalan terbaik untuk melaksanakan fungsi loteri dalam PHP Perkongsian amalan terbaik untuk melaksanakan fungsi loteri dalam PHP Mar 01, 2024 am 08:42 AM

Perkongsian amalan terbaik untuk melaksanakan fungsi loteri dalam PHP

Bagaimana untuk melaksanakan loteri dalam php Bagaimana untuk melaksanakan loteri dalam php Dec 19, 2022 am 10:10 AM

Bagaimana untuk melaksanakan loteri dalam php

MySQL melaksanakan fungsi loteri dan langkah-langkah untuk mencipta jadual hadiah MySQL melaksanakan fungsi loteri dan langkah-langkah untuk mencipta jadual hadiah Jul 01, 2023 am 09:29 AM

MySQL melaksanakan fungsi loteri dan langkah-langkah untuk mencipta jadual hadiah

See all articles