国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 PHP 庫 其它類庫 中獎概率算法的php函數類
中獎概率算法的php函數類
<?php
function get_rand($proArr) {
    $result = '';
    //概率數組的總概率精度
    $proSum = array_sum($proArr);
    //概率數組循環(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;
}

獎項數組是一個二維數組,記錄了所有本次抽獎的獎項信息,其中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這個范圍內篩選的。這樣 篩選到最終,總會有一個數滿足要求。就相當于去一個箱子里摸東西,第一個不是,第二個不是,第三個還不是,那最后一個一定是。這個算法簡單,而且效率非常 高,關鍵是這個算法已在我們以前的項目中有應用,尤其是大數據量的項目中效率非常棒。


免責聲明

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

相關文章

php如何實現計算抽獎概率的算法實例分享 php如何實現計算抽獎概率的算法實例分享

09 Aug 2017

這篇文章主要介紹了PHP編程實現計算抽獎概率算法,結合完整實例形式分析了php隨機數運算相關操作技巧,需要的朋友可以參考下

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

22 May 2025

本文討論了使用兩分球技術從排序切片中刪除重復項的有效GO功能,強調算法設計和性能。WordCount:159

如何使用自連接從自引用表中檢索數據? 如何使用自連接從自引用表中檢索數據?

13 Jan 2025

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

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

28 Dec 2024

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

Oracle 數據庫現在支持布爾數據類型嗎? Oracle 數據庫現在支持布爾數據類型嗎?

12 Jan 2025

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

三個班級裝載機是什么? 三個班級裝載機是什么?

02 Jul 2025

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

See all articles