首頁 php教程 PHP源码 抽奖概率 PHP

抽奖概率 PHP

May 26, 2016 am 08:21 AM

抽奖概率

<?php 

function get_rand($proArr) { 
    $result = &#39;&#39;; 

    //概率数组的总概率精度
    $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( 
    &#39;0&#39; => array(&#39;id&#39;=>1,&#39;prize&#39;=>&#39;平板电脑&#39;,&#39;v&#39;=>0), 
    &#39;1&#39; => array(&#39;id&#39;=>2,&#39;prize&#39;=>&#39;数码相机&#39;,&#39;v&#39;=>0), 
    &#39;2&#39; => array(&#39;id&#39;=>3,&#39;prize&#39;=>&#39;音箱设备&#39;,&#39;v&#39;=>0), 
    &#39;3&#39; => array(&#39;id&#39;=>4,&#39;prize&#39;=>&#39;4G优盘&#39;,&#39;v&#39;=>0), 
    &#39;4&#39; => array(&#39;id&#39;=>5,&#39;prize&#39;=>&#39;10Q币&#39;,&#39;v&#39;=>1), 
    &#39;5&#39; => array(&#39;id&#39;=>6,&#39;prize&#39;=>&#39;下次没准就能中哦&#39;,&#39;v&#39;=>100), 
);  


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

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

$res[&#39;yes&#39;] = $prize_arr[$rid-1][&#39;prize&#39;]; //中奖项
//将中奖项从数组中剔除,剩下未中奖项,如果是数据库验证,这里可以省掉
unset($prize_arr[$rid-1]); 
shuffle($prize_arr); //打乱数组顺序
for($i=0;$i<count($prize_arr);$i++){ 
    $pr[] = $prize_arr[$i][&#39;prize&#39;]; 
} 
$res[&#39;no&#39;] = $pr; 
echo "<pre class="brush:php;toolbar:false">";
print_r($res);
// echo json_encode($res);
登入後複製
登入後複製

2. [代码]抽奖概率

<?php 

function get_rand($proArr) { 
    $result = &#39;&#39;; 

    //概率数组的总概率精度
    $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( 
    &#39;0&#39; => array(&#39;id&#39;=>1,&#39;prize&#39;=>&#39;平板电脑&#39;,&#39;v&#39;=>0), 
    &#39;1&#39; => array(&#39;id&#39;=>2,&#39;prize&#39;=>&#39;数码相机&#39;,&#39;v&#39;=>0), 
    &#39;2&#39; => array(&#39;id&#39;=>3,&#39;prize&#39;=>&#39;音箱设备&#39;,&#39;v&#39;=>0), 
    &#39;3&#39; => array(&#39;id&#39;=>4,&#39;prize&#39;=>&#39;4G优盘&#39;,&#39;v&#39;=>0), 
    &#39;4&#39; => array(&#39;id&#39;=>5,&#39;prize&#39;=>&#39;10Q币&#39;,&#39;v&#39;=>1), 
    &#39;5&#39; => array(&#39;id&#39;=>6,&#39;prize&#39;=>&#39;下次没准就能中哦&#39;,&#39;v&#39;=>100), 
);  


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

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

$res[&#39;yes&#39;] = $prize_arr[$rid-1][&#39;prize&#39;]; //中奖项
//将中奖项从数组中剔除,剩下未中奖项,如果是数据库验证,这里可以省掉
unset($prize_arr[$rid-1]); 
shuffle($prize_arr); //打乱数组顺序
for($i=0;$i<count($prize_arr);$i++){ 
    $pr[] = $prize_arr[$i][&#39;prize&#39;]; 
} 
$res[&#39;no&#39;] = $pr; 
echo "<pre class="brush:php;toolbar:false">";
print_r($res);
// echo json_encode($res);
登入後複製
登入後複製


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


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

用於時間序列機率預測的分位數迴歸 用於時間序列機率預測的分位數迴歸 May 07, 2024 pm 05:04 PM

不要改變原內容的意思,微調內容,重寫內容,不要續寫。 「分位數迴歸滿足此需求,提供具有量化機會的預測區間。它是一種統計技術,用於模擬預測變數與反應變數之間的關係,特別是當反應變數的條件分佈命令人感興趣時。 ⼀組迴歸變數X與被解釋變數Y的分位數之間線性關係的建模⽅法。現有的迴歸模型其實是研究被解釋變數與解釋變數之間關係的一種方法。他們關註解釋變數與被解釋變數之間的關

excel抽獎小程式如何製作 excel抽獎小程式如何製作 Mar 20, 2024 am 11:40 AM

平常的工作會遇到很多需要抽籤進行的內容,傳統的方法還是用紙質的號碼隨機抽籤,隨著電子軟體的發展,我們可以用電腦製作抽籤,今天欠們給大家分享的課程是excel抽獎小程式如何製作。 1.首先我們打開Excel軟體,打開我們準備好的表格,表格中要包含我們人的名字。  2、接著我們對右邊的單元格進行合併,將今晚誰幸運填充為黑色,並將下方的單元格合併填充為紅色,如下圖所示。  3、接著我們在紅色區域中輸入randbetween函數,設定第一行為2,最後一行為7,如下圖所示。  4、接著我們在前面輸入ind

PHP抽獎系統設計與實作詳解 PHP抽獎系統設計與實作詳解 Mar 01, 2024 am 09:51 AM

PHP抽獎系統設計與實現詳解一、概述抽獎活動是許多網站和應用都會使用的一種行銷手段,透過抽獎可以吸引用戶參與活動,增加用戶互動性,提升用戶黏性。在本文中,我們將詳細介紹如何使用PHP語言來設計和實作一個簡單的抽獎系統。透過本文的學習,讀者將會了解抽獎系統的建構原理以及具體的程式碼實現。二、系統設計在設計一個抽獎系統之前,我們首先需要確定係統的功能需求與流程。一

如何使用Vue實現抽獎轉盤特效 如何使用Vue實現抽獎轉盤特效 Sep 19, 2023 am 10:18 AM

如何使用Vue實現抽獎轉盤特效抽獎活動作為一種受歡迎的行銷手段,經常出現在各種活動中。為了增加趣味性和互動性,我們可以使用Vue框架來實現一個抽獎轉盤特效。這篇文章將會介紹如何使用Vue來實現這項特效,並給出具體的程式碼範例。首先,我們需要建立一個Vue實例,用於控制轉盤的狀態和動畫。在這個實例中,我們需要定義轉盤的初始狀態,包括獎品清單、轉盤是否正在旋轉、轉盤

使用PHP開發抽獎功能的步驟與技巧 使用PHP開發抽獎功能的步驟與技巧 Feb 29, 2024 pm 04:42 PM

標題:使用PHP開發抽獎功能的步驟與技巧在網站開發中,抽獎功能常被用來增加使用者互動性和吸引力。使用PHP語言來發展抽獎功能是一種常見的方式。在本文中,將介紹如何使用PHP來開發一個簡單的抽獎功能,並給出具體的程式碼範例。步驟一:準備資料庫首先,我們需要建立一個MySQL資料庫來儲存抽獎活動的相關數據,包括獎品資訊、參與用戶資訊等。可以使用下列SQL命令建立一

抖音抽獎怎麼提高中獎率?有哪些技巧? 抖音抽獎怎麼提高中獎率?有哪些技巧? Mar 07, 2024 pm 02:43 PM

在當今社群媒體的繁榮時代,抖音短片已經成為了人們生活中不可或缺的一部分。而抖音上的抽獎活動也是吸引了無數用戶的注意與參與。然而,很多人常常遇到一個問題:如何提升自己在抖音抽獎中的中獎率呢?本文將為大家總結幾個提高中獎率的技巧,幫助你在抖音抽獎中獲得更多的好運。 1.仔細閱讀抽獎規則要提高中獎率,我們不能忽視抽獎規則。每個抽獎活動都會有詳細的規則說明,包括參與條件、抽獎時間和方式等。在參與之前,務必認真閱讀規則,並確保自己符合所有條件。有時候,還可以透過仔細閱讀規則,發現一些隱藏的機會,從而增加中

長刀一怒斬雷霆! 《龍武》端遊即將推出全新雷電職業-悍刀「驚雷」 長刀一怒斬雷霆! 《龍武》端遊即將推出全新雷電職業-悍刀「驚雷」 Mar 01, 2024 pm 05:07 PM

《龍武》2024年度新資料片「悍刀驚雷」即將於3月8日正式開跑!雷霆萬鈞,不斬無名!全新颯爽新職業「驚雷」威風來襲!本次新職業能依靠雷電的力量化雷為刃,在戰鬥中用獨有的雷霆刀氣分割戰場,擁有十分強大的群體爆發傷害及續航能力,配合出色的位移機制將在團戰中發揮出無與倫比的戰略效果!新職業驚雷的背景劇情故事是一位擅長刀法的女俠高手,擁有與雷電相連的神秘能力。能夠將雷電法術、近戰刀法融會貫通,揮刀間伴隨電閃雷鳴。一招一式之間,她的刀法猶如雷鳴般迅猛又變化莫測,每一刀都帶著雷電的威力,讓敵人望風而逃。然

php怎麼實現抽獎 php怎麼實現抽獎 Dec 19, 2022 am 10:10 AM

php實現抽獎的方法:1.建立一個php範例檔案;2、定義獎池擁有的獎品;3、透過「shuffle($prize);」方法進行隨機抽獎;4、使用「print_r($prize[0]) ;」列印抽獎結果即可。

See all articles