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

首頁 後端開發(fā) php教程 中獎機率演算法(php 可用於刮刮卡,大轉(zhuǎn)盤等抽獎演算法)

中獎機率演算法(php 可用於刮刮卡,大轉(zhuǎn)盤等抽獎演算法)

Jul 29, 2016 am 09:10 AM
arr array gt

php中獎機率演算法,可用於刮刮卡,大轉(zhuǎn)盤等抽獎演算法。用法很簡單,程式碼裡有詳細(xì)註解說明,一看就懂

<?<span>php
</span><span>/*</span><span> * 經(jīng)典的概率算法,
 * $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ù)量的項目中效率非常棒。
 </span><span>*/</span><span>function</span> get_rand(<span>$proArr</span><span>) { 
    </span><span>$result</span> = ''<span>;  
    </span><span>//</span><span>概率數(shù)組的總概率精度 </span><span>$proSum</span> = <span>array_sum</span>(<span>$proArr</span><span>);  
    </span><span>//</span><span>概率數(shù)組循環(huán) </span><span>foreach</span> (<span>$proArr</span><span>as</span><span>$key</span> => <span>$proCur</span><span>) { 
        </span><span>$randNum</span> = <span>mt_rand</span>(1, <span>$proSum</span><span>); 
        </span><span>if</span> (<span>$randNum</span> <= <span>$proCur</span><span>) { 
            </span><span>$result</span> = <span>$key</span><span>; 
            </span><span>break</span><span>; 
        } </span><span>else</span><span> { 
            </span><span>$proSum</span> -= <span>$proCur</span><span>; 
        }         
    } 
    </span><span>unset</span> (<span>$proArr</span><span>);  
    </span><span>return</span><span>$result</span><span>; 
} 


</span><span>/*</span><span> * 獎項數(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,那中獎概率就是萬分之一了。
 * 
 </span><span>*/</span><span>$prize_arr</span> = <span>array</span><span>( 
    </span>'0' => <span>array</span>('id'=>1,'prize'=>'平板電腦','v'=>1), 
    '1' => <span>array</span>('id'=>2,'prize'=>'數(shù)碼相機','v'=>5), 
    '2' => <span>array</span>('id'=>3,'prize'=>'音箱設(shè)備','v'=>10), 
    '3' => <span>array</span>('id'=>4,'prize'=>'4G優(yōu)盤','v'=>12), 
    '4' => <span>array</span>('id'=>5,'prize'=>'10Q幣','v'=>22), 
    '5' => <span>array</span>('id'=>6,'prize'=>'下次沒準(zhǔn)就能中哦','v'=>50),<span>
); 

</span><span>/*</span><span> * 每次前端頁面的請求,PHP循環(huán)獎項設(shè)置數(shù)組,
 * 通過概率計算函數(shù)get_rand獲取抽中的獎項id。
 * 將中獎獎品保存在數(shù)組$res['yes']中,
 * 而剩下的未中獎的信息保存在$res['no']中,
 * 最后輸出json個數(shù)數(shù)據(jù)給前端頁面。
 </span><span>*/</span><span>foreach</span> (<span>$prize_arr</span><span>as</span><span>$key</span> => <span>$val</span><span>) { 
    </span><span>$arr</span>[<span>$val</span>['id']] = <span>$val</span>['v'<span>]; 
} 
</span><span>$rid</span> = get_rand(<span>$arr</span>); <span>//</span><span>根據(jù)概率獲取獎項id </span><span>$res</span>['yes'] = <span>$prize_arr</span>[<span>$rid</span>-1]['prize']; <span>//</span><span>中獎項 </span><span>unset</span>(<span>$prize_arr</span>[<span>$rid</span>-1]); <span>//</span><span>將中獎項從數(shù)組中剔除,剩下未中獎項 </span><span>shuffle</span>(<span>$prize_arr</span>); <span>//</span><span>打亂數(shù)組順序 </span><span>for</span>(<span>$i</span>=0;<span>$i</span><<span>count</span>(<span>$prize_arr</span>);<span>$i</span>++<span>){ 
    </span><span>$pr</span>[] = <span>$prize_arr</span>[<span>$i</span>]['prize'<span>]; 
} 
</span><span>$res</span>['no'] = <span>$pr</span><span>; 
</span><span>print_r</span>(<span>$res</span>); 

以上就介紹了中獎機率演算法(php 可用於刮刮卡,大轉(zhuǎn)盤等抽獎演算法),包括了方面的內(nèi)容,希望對PHP教程有興趣的朋友有所幫助。

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

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整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

華為GT3 Pro和GT4的差異是什麼? 華為GT3 Pro和GT4的差異是什麼? Dec 29, 2023 pm 02:27 PM

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區(qū)別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質(zhì)是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質(zhì)是藍(lán)寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結(jié)果會更加的精準(zhǔn)。 GT3pro:多了ECG心電圖和血管及安

修復(fù):截圖工具在 Windows 11 中不起作用 修復(fù):截圖工具在 Windows 11 中不起作用 Aug 24, 2023 am 09:48 AM

為什麼截圖工具在Windows11上不起作用了解問題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無法正常工作的主要原因:對焦助手已開啟:這可以防止截圖工具開啟。應(yīng)用程式損壞:如果截圖工具在啟動時崩潰,則可能已損壞。過時的圖形驅(qū)動程式:不相容的驅(qū)動程式可能會幹?jǐn)_截圖工具。來自其他應(yīng)用程式的干擾:其他正在運行的應(yīng)用程式可能與截圖工具衝突。憑證已過期:升級過程中的錯誤可能會導(dǎo)致此issu簡單的解決方案這些適合大多數(shù)用戶,不需要任何特殊的技術(shù)知識。 1.更新視窗與Microsoft應(yīng)用程式商店應(yīng)用程

使用C#中的Array.Sort函數(shù)對陣列進(jìn)行排序 使用C#中的Array.Sort函數(shù)對陣列進(jìn)行排序 Nov 18, 2023 am 10:37 AM

標(biāo)題:C#中使用Array.Sort函數(shù)對陣列進(jìn)行排序的範(fàn)例正文:在C#中,陣列是一種常用的資料結(jié)構(gòu),經(jīng)常需要對陣列進(jìn)行排序運算。 C#提供了Array類,其中有Sort方法可以方便地對陣列進(jìn)行排序。本文將示範(fàn)如何使用C#中的Array.Sort函數(shù)對陣列進(jìn)行排序,並提供具體的程式碼範(fàn)例。首先,我們要先了解Array.Sort函數(shù)的基本用法。 Array.So

簡單明了的PHP array_merge_recursive()函式使用方法 簡單明了的PHP array_merge_recursive()函式使用方法 Jun 27, 2023 pm 01:48 PM

在進(jìn)行PHP編程時,我們常常需要將數(shù)組合併。 PHP提供了array_merge()函數(shù)來完成數(shù)組合併的工作,但是當(dāng)數(shù)組中存在相同的鍵時,函數(shù)會覆寫原來的值。為了解決這個問題,PHP在語言中還提供了一個array_merge_recursive()函數(shù),該函數(shù)可以合併數(shù)組並保留相同鍵的值,使得程式的設(shè)計變得更加靈活。 array_merge

如何使用PHP中的array_combine函數(shù)將兩個陣列拼成關(guān)聯(lián)數(shù)組 如何使用PHP中的array_combine函數(shù)將兩個陣列拼成關(guān)聯(lián)數(shù)組 Jun 26, 2023 pm 01:41 PM

在PHP中,有許多強大的陣列函數(shù)可以讓陣列的操作更加方便和快速。當(dāng)我們需要將兩個陣列拼成一個關(guān)聯(lián)數(shù)組時,可以使用PHP的array_combine函數(shù)來實現(xiàn)這一操作。這個函數(shù)其實是用來將一個陣列的鍵當(dāng)作另一個陣列的值,合併成一個新的關(guān)聯(lián)數(shù)組。接下來,我們將會講解如何使用PHP中的array_combine函數(shù)將兩個陣列拼成關(guān)聯(lián)數(shù)組。了解array_comb

如何修復(fù)無法連線到iPhone上的App Store錯誤 如何修復(fù)無法連線到iPhone上的App Store錯誤 Jul 29, 2023 am 08:22 AM

第1部分:初始故障排除步驟檢查蘋果的系統(tǒng)狀態(tài):在深入研究複雜的解決方案之前,讓我們先從基礎(chǔ)知識開始。問題可能不在於您的設(shè)備;蘋果的伺服器可能會關(guān)閉。造訪Apple的系統(tǒng)狀態(tài)頁面,查看AppStore是否正常運作。如果有問題,您所能做的就是等待Apple修復(fù)它。檢查您的網(wǎng)路連接:確保您擁有穩(wěn)定的網(wǎng)路連接,因為「無法連接到AppStore」問題有時可歸因於連接不良。嘗試在Wi-Fi和行動數(shù)據(jù)之間切換或重置網(wǎng)路設(shè)定(「常規(guī)」>「重置」>「重置網(wǎng)路設(shè)定」>設(shè)定)。更新您的iOS版本:

php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出,該如何解決 php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出,該如何解決 Jun 13, 2016 am 10:23 AM

php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出而不是在空白頁彈出?想實現(xiàn)這樣的效果:而不是空白頁彈出:------解決方案--------------------如果你的驗證用PHP在后端,那么就用Ajax;僅供參考:HTML code

watch4pro好還是gt好 watch4pro好還是gt好 Sep 26, 2023 pm 02:45 PM

watch4pro和gt各自具有不使用的特點和適用場景,如果注重功能的全面性、高性能和時尚外觀,同時願意承擔(dān)較高的價格,那麼Watch 4 Pro可能更適合。如果對功能要求不高,更注重電池續(xù)航力和價格的合理性,那麼GT系列可能更適合。最終的選擇應(yīng)根據(jù)個人需求、預(yù)算和喜好來決定,建議在購買前仔細(xì)考慮自己的需求,並參考各種產(chǎn)品的評測和比較,以做出更明智的選擇。

See all articles