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

首頁 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

相關文章

為什麼要從 Python 中的「object」繼承:一個類別繼承問題 為什麼要從 Python 中的「object」繼承:一個類別繼承問題

24 Dec 2024

了解 Python 類別繼承在 Python 中,類別可以從其他類別繼承,這使它們能夠存取父類別的屬性並...

如何在 Linux 上建立和使用動態(tài)共用 C 類別庫? 如何在 Linux 上建立和使用動態(tài)共用 C 類別庫?

05 Dec 2024

在 Linux 上建立和使用動態(tài)共用 C 類別庫建立共用類別庫要建立共用 C 類別庫,您可以依照...

為什麼無法在字段初始化程序中初始化非靜態(tài)字段? 為什麼無法在字段初始化程序中初始化非靜態(tài)字段?

03 Jan 2025

了解欄位初始化問題在您的程式碼中,您有一個儲存庫類別 (DinnerRepository) 和一個服務類別 (Service),它使用...

如何在 NetBeans 中設定 Java 專案的類別路徑? 如何在 NetBeans 中設定 Java 專案的類別路徑?

07 Dec 2024

在 NetBeans 中設定類別路徑在 NetBeans 中使用 Java 時,您可能需要調整類別路徑以包含其他程式庫或 JAR...

什麼時候應該在 Java 中使用「final」類別? 什麼時候應該在 Java 中使用「final」類別?

08 Dec 2024

何時在 Java 中使用「final 類別」在 Java 中,您可以將一個類別宣告為 Final,這意味著它不能被其他類別擴展。這個概念可能...

如何找到 PostgreSQL 中每個類別的最大日期 ID? 如何找到 PostgreSQL 中每個類別的最大日期 ID?

30 Dec 2024

為 PostgreSQL 中的每個類別選擇最大日期 ID 在包含一個包含有關類別、日期和 ID 的資料的表的資料庫中,它是...

See all articles