亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 PHP 庫 其它類庫 中獎概率算法的php函數(shù)類
中獎概率算法的php函數(shù)類
<?php
function get_rand($proArr) {
    $result = '';
    //概率數(shù)組的總概率精度
    $proSum = array_sum($proArr);
    //概率數(shù)組循環(huán)
    foreach ($proArr as $key => $proCur) {
        $randNum = mt_rand(1, $proSum);
        if ($randNum <= $proCur) {
            $result = $key;
            break;
        } else {
            $proSum -= $proCur;
        }
    }
    unset ($proArr);
    return $result;
}

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


免責(zé)聲明

本站所有資源均由網(wǎng)友貢獻(xiàn)或各大下載網(wǎng)站轉(zhuǎn)載。請自行檢查軟件的完整性!本站所有資源僅供學(xué)習(xí)參考。請不要將它們用于商業(yè)目的。否則,一切后果由您負(fù)責(zé)!如有侵權(quán),請聯(lián)系我們刪除。聯(lián)系方式:admin@php.cn

相關(guān)文章

在Go中實現(xiàn)功能以刪除從分類的切片中刪除重復(fù)元素。 (通過分類數(shù)據(jù)的效率和算法設(shè)計側(cè)重于效率和算法設(shè)計) 在Go中實現(xiàn)功能以刪除從分類的切片中刪除重復(fù)元素。 (通過分類數(shù)據(jù)的效率和算法設(shè)計側(cè)重于效率和算法設(shè)計)

22 May 2025

本文討論了使用兩分球技術(shù)從排序切片中刪除重復(fù)項的有效GO功能,強(qiáng)調(diào)算法設(shè)計和性能。WordCount:159

如何使用自連接從自引用表中檢索數(shù)據(jù)? 如何使用自連接從自引用表中檢索數(shù)據(jù)?

13 Jan 2025

了解 SELF JOIN 及其應(yīng)用程序在數(shù)據(jù)庫管理領(lǐng)域中,SELF JOIN 是一種特殊類型的聯(lián)接操作,它允許...

在 Joomla 中連接第三方 PHP 庫 在 Joomla 中連接第三方 PHP 庫

28 Dec 2024

PHP 庫很方便,因為可以從應(yīng)用程序中的任何位置訪問它們:從插件、組件模型、模塊等。如果有人已經(jīng)解決了類似的問題并將其設(shè)計為庫(甚至更新了它),那就有意義了

Oracle 數(shù)據(jù)庫現(xiàn)在支持布爾數(shù)據(jù)類型嗎? Oracle 數(shù)據(jù)庫現(xiàn)在支持布爾數(shù)據(jù)類型嗎?

12 Jan 2025

Oracle 數(shù)據(jù)庫中布爾數(shù)據(jù)類型的可用性與其他 RDBMS(例如提供 BIT 數(shù)據(jù)類型的 Microsoft SQL Server)不同,Oracle 數(shù)據(jù)庫...

三個班級裝載機(jī)是什么? 三個班級裝載機(jī)是什么?

02 Jul 2025

Java中的三個主要類加載器是BootstrapClassLoader、ExtensionClassLoader和ApplicationClassLoader,它們構(gòu)成了雙親委派模型。1.BootstrapClassLoader是最頂層的類加載器,由C/C 實現(xiàn),負(fù)責(zé)加載Java核心類庫(如rt.jar),位于jre/lib目錄下,用戶無法直接訪問;2.ExtensionClassLoader是其子類加載器,負(fù)責(zé)加載jre/lib/ext路徑下的擴(kuò)展類庫,可通過ClassLoader.getS

oracle數(shù)據(jù)庫中常用的段有哪些 oracle數(shù)據(jù)庫中常用的段有哪些

04 Mar 2025

本文研究了Oracle數(shù)據(jù)庫細(xì)分類型(數(shù)據(jù),索引,回滾,臨時),其性能含義和管理。 它強(qiáng)調(diào)根據(jù)工作量和數(shù)據(jù)特征選擇適當(dāng)?shù)亩晤愋停蕴岣咦罴研?/p>

See all articles