首頁 PHP 函式庫 其它類別庫 中獎機率演算法的php函數類
中獎機率演算法的php函數類
<?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;
}

獎項數組是一個二維數組,記錄了所有本次抽獎的獎項信息,其中id表示中獎等級,prize表示獎品,v表示中獎概率。注意其中的v必須為整數,你可以將對應的獎項的v設定成0,即意味著該獎項抽中的幾率是0,數組中v的總和(基數),基數越大越能體現機率的準確性。本例中v的總和為100,那麼平板電腦對應的 中獎機率就是1%,如果v的總和是10000,那中獎機率就是萬分之一了。 $proArr是一個預先設定的數組,假設數組為:array(100,200,300,400),開始是從1,1000 這個機率範圍內篩選第一個數是否在他的出現機率範圍之內,如果不在,則將機率空間,也就是k的值減去剛剛的那個數字的機率空間,在本例當中就是減去100,也就是說第二個數是在1,900這個範圍內篩選的。這樣 篩選到最終,總會有一個數滿足要求。就等於去一個箱子裡摸東西,第一個不是,第二個不是,第三個還不是,那最後一個一定是。這個演算法簡單,而且效率非常 高,關鍵是這個演算法已在我們先前的專案中有應用,尤其是大數據量的專案中效率非常棒。


免責聲明

本站所有資源皆由網友貢獻或各大下載網站轉載。請自行檢查軟體的完整性!本站所有資源僅供學習參考。請不要將它們用於商業目的。否則,一切後果都由您負責!如有侵權,請聯絡我們刪除。聯絡方式:admin@php.cn

相關文章

php 中獎機率演算法 php 中獎機率演算法

08 Aug 2016

:本篇文章主要介紹了php 中獎機率演算法,對於PHP教學有興趣的同學可以參考一下。

php實作中獎機率演算法函數的思路分析 php實作中獎機率演算法函數的思路分析

16 Aug 2017

那麼在我們工作中,不管是商城的,企業站等等一些主流網站,公司很多時候都會出現很多的限時活動,優惠活動,當然最重要的就要數抽獎活動了,很多公司都會用抽獎活動來吸引更多的客戶,那我們今天就跟大家講講這個抽獎中獎機率的演算法!

PHP機率演算法函數 PHP機率演算法函數

07 Jun 2018

這篇文章主要介紹PHP機率演算法函數,有興趣的朋友參考下,希望對大家有幫助。

PHP 與 JS 中獎機率的演算法 PHP 與 JS 中獎機率的演算法

06 Jul 2018

這篇文章主要介紹了關於PHP 與 JS 中獎機率的演算法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

php實作抽獎程式中獎機率演算法的範例 php實作抽獎程式中獎機率演算法的範例

15 Nov 2017

在我們日常工作中,常常會於到一些抽獎的活動,那麼今天我們就給大家分享php中獎機率演算法,可用於刮刮卡,大轉盤等抽獎演算法。用法很簡單,程式碼裡有詳細註解說明,一看就懂,有需要的夥伴參考下吧。

php 中獎機率演算法實作程式碼 php 中獎機率演算法實作程式碼

03 Feb 2017

這篇文章主要介紹了php 中獎機率演算法,需要的朋友可以參考下

See all articles