您現在的位置是:電腦技術吧?>? 故障問題 ??>??中獎概率的公式,中獎率算法??>??正文詳情

中獎概率的公式,中獎率算法

回心語2019-12-13 10:02:32 人圍觀
簡介31選7中獎概率本文將與大家分享PHP中獎概率算法,該算法可用于刮卡、大轉盤等彩票算法。用法很簡單。代碼中有詳細的注釋。你一讀就明白了。如果你需要的話,請參考他們。我們首

本文給大家分享的是php中獎概率算法,可用于刮刮卡,大轉盤等抽獎算法。

用法很簡單,代碼里有詳細注釋說明,一看就懂,有需要的小伙伴參考下吧。

  們先完成后臺PHP的流程,PHP的主要工作是負責配置獎項及對應的中獎概率,當前端頁面點擊翻動某個方塊時會想后臺PHP發送ajax請求,那么后臺PHP根據配置的概率,通過概率算法給出中獎結果,同時將未中獎的獎項信息一并以JSON數據格式發送給前端頁面。

  先來看概率計算函數  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 function get_rand($proArr) { $result = ''; //概率數組的總概率精度 $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; }   上述代碼是一段經典的概率算法,$proArr是一個預先設置的數組,假設數組為:array(100,200,300,400),開始是從1,1000這個概率范圍內篩選第一個數是否在他的出現概率范圍之內, 如果不在,則將概率空間,也就是k的值減去剛剛的那個數字的概率空間,在本例當中就是減去100,也就是說第二個數是在1,900這個范圍內篩選的。

這樣篩選到最終,總會有一個數滿足要求。

就相當于去一個箱子里摸東西,第一個不是,第二個不是,第三個還不是,那最后一個一定是。

這個算法簡單,而且效率非常高,關鍵是這個算法已在我們以前的項目中有應用,尤其是大數據量的項目中效率非常棒。

  接下來我們通過PHP配置獎項。

  ? 1 2 3 4 5 6 7 8 $prize_arr = array( '0' = array('id'=1,'prize'='平板電腦','v'=1), '1' = array('id'=2,'prize'='數碼相機','v'=5), '2' = array('id'=3,'prize'='音箱設備','v'=10), '3' = array('id'=4,'prize'='4G優盤','v'=12), '4' = array('id'=5,'prize'='10Q幣','v'=22), '5' = array('id'=6,'prize'='下次沒準就能中哦','v'=50), );   該二維數組,記錄了所有本次抽獎的獎項信息,其中id表示中獎等級,prize表示獎品,v表示中獎概率。

注意其中的v必須為整數,你可以將對應的獎項的v設置成0,即意味著該獎項抽中的幾率是0,數組中v的總和(基數),基數越大越能體現概率的準確性。

本例中v的總和為100,那么平板電腦對應的中獎概率就是1%,如果v的總和是10000,那中獎概率就是萬分之一了。

  每次前端頁面的請求,PHP循環獎項設置數組,通過概率計算函數get_rand獲取抽中的獎項id。

將中獎獎品保存在數組$res['yes']中,而剩下的未中獎的信息保存在$res['no']中,最后輸出json個數數據給前端頁面。

  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 foreach ($prize_arr as $key = $val) { $arr[$val['id']] = $val['v']; } $rid = get_rand($arr); //根據概率獲取獎項id $res['yes'] = $prize_arr[$rid-1]['prize']; //中獎項 unset($prize_arr[$rid-1]); //將中獎項從數組中剔除,剩下未中獎項 shuffle($prize_arr); //打亂數組順序 for($i=0;$icount($prize_arr);$i ){ $pr[] = $prize_arr[$i]['prize']; } $res['no'] = $pr; echo json_encode($res);   另附上一個網友的實現方法  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 /** * 抽獎 * @param int $total */ function getReward($total=1000) { $win1 = floor((0.12*$total)/100); $win2 = floor((3*$total)/100); $win3 = floor((12*$total)/100); $other = $total-$win1-$win2-$win3; $return = array(); for ($i=0;$i$win1;$i ) { $return[] = 1; } for ($j=0;$j$win2;$j ) { $return[] = 2; } for ($m=0;$m$win3;$m ) { $return[] = 3; } for ($n=0;$n$other;$n ) { $return[] = '謝謝惠顧'; } shuffle($return); return $return[array_rand($return)]; } $data = getReward(); echo $data; ?   以上所述就是本文的全部內容了,希望大家能夠喜歡。

版權聲明:本文由 回心語 整理編輯。

原標題:彩票中獎概率計算公式,福利彩票中獎概率計算公式

轉載注明出處:http://www.dn9ww09s.icu/fault/15414.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • 用戶名已存在什么意思,驗證用戶名是否存在

    用戶名已存在什么意思,驗證用戶名是否存在 相關圖片登錄用戶名怎么填寫%Dim Conn,rsdim connstrdim sqlcmddim username'get username query string username12306注冊用戶名已存在...

  • 一對象,對象的創建和使用

    一對象,對象的創建和使用 相關圖片對象是什么意思ASP有五個內置對象:服務器、請求、響應、應用程序和會話。現在讓我們用例子來解釋它們。第一個是最常用的響應對象。示例1在網頁中使用響應創造對象...

  • 土地利用總體規劃修編,土地利用總體規劃概念

    土地利用總體規劃修編,土地利用總體規劃概念 相關圖片土地利用規劃圖恐怕很少有經常上網的網友沒有去過聊天室。如果你稍加注意,你會發現大多數聊天室都是用CGI或Java開發的土地利用總體規劃 面積...

  • iOS3D游戲,ios 3dtouch

    iOS3D游戲,ios 3dtouch 相關圖片ios3dtouch在哪開首先需要獲取mono.data.sqlite.dll文件和system.data.dll文件。如果你在MAC上使用unity,那就太悲劇了。我找不到這兩個文件,3dtouch怎么用...

  • php 函數,php常用函數

    php 函數,php常用函數 相關圖片php重復函數本文主要介紹了PHP中動態調用函數的方法,分析了在PHP中實現動態函數的原理和步驟。您可以引用PHP將函數名按字符串傳遞給變量,然后使用該變量動態調用函數。下面php重...

  • asp生成驗證碼,生成驗證碼

    asp生成驗證碼,生成驗證碼 相關圖片更換asp的驗證碼下面的代碼是一個使用ASP生成圖像驗證代碼的程序。大多數寫驗證碼的人都會知道。讓我們看看如何生成這個圖像驗證代碼。%Option ExplicitResponsasp輸出漢字驗證碼...

  • 接口的定義,usb定義

    接口的定義,usb定義 相關圖片type-c接口引腳定義圖本文主要介紹PHP中的六個預定義接口。本文介紹了traversable、iterator、iteratoraggregate、arrayaccess、seriaminidp接口...

  • wps上傳文件大小限制,php上傳文件大小限制

    wps上傳文件大小限制,php上傳文件大小限制 相關圖片怎樣調整照片文件大小在將文件上載到服務器之前,ASP文件上載組件用于確定文件大小是否超過指定的大小。在本例中,upload?file upload組件file.filesize10文檔大小超出上傳限制...

  • 粒子群算法實例,什么是算法

    粒子群算法實例,什么是算法 相關圖片nagle算法本文主要介紹PHP哈希算法:一個times33算法代碼的例子。本文直接給出了實現代碼。你可以參考你朋友的最新一本書,里面提到了一些散列算法。最讓人印象深刻的是,dekker算法...

  • phpstorm快捷鍵,phpstorm快捷鍵大全

    phpstorm快捷鍵,phpstorm快捷鍵大全 相關圖片Phpstorm快捷鍵搜索文件名本文主要介紹PHP-ide格式的常用快捷鍵。本文分別列出了MAC系統和windows系統下phpstorm的快捷鍵。對于需要參考下一條的朋友,請使用Mac機phps注釋快捷鍵...

熱評文章

  • asp重復的組件名稱,aspflash組件

    asp重復的組件名稱,aspflash組件 相關圖片asp組件上傳文件字符空間不足%@LANGUAGE=VBSCRIPT CODEPAGE=936%%Response.Expires=0Pic=Request(p)PointX=CInt(Reasp調用flash...

  • 用遞歸求數組的和,遞歸數組排序

    用遞歸求數組的和,遞歸數組排序 相關圖片js數組遍歷與遞歸本文介紹了一個數組遞歸轉義法的PHP實現實例,供大家參考。具體方法如下:PHP需要將數組轉換成XML是常見的,實現方法也很多。百度已經找到了各種實現方法,但它基...

  • 上傳圖片格式jpg,如何上傳圖片

    上傳圖片格式jpg,如何上傳圖片 相關圖片上傳照片格式不對怎么辦由于圖片是上傳的,所以在上傳之前需要對文件進行驗證,看看要上傳的圖片文件是否需要在最近的工作中完成上傳圖片的功能。由于圖像是上載的,因此在上...

  • asp代碼編輯,asp網站代碼

    asp代碼編輯,asp網站代碼 相關圖片asp整站下載下面提供一個最全面的ASP數據庫連接源Oh,根據不同類型判斷是連接access數據庫還是MSSQL數據庫Oh。%@LANGUAGE=VBSCRIPT CODEPasp文件...

  • 在哪編寫asp程序,asp程序開發

    在哪編寫asp程序,asp程序開發 相關圖片asp源碼 自助建站Function jdsj() n = CSTR (right (year (date ()), 2)) - y = CSTR (month (date (什么asp...

  • %c,8c

    %c,8c 相關圖片7c由于權限不足,無法修改系統時間。所以我以管理員的身份運行了一次,測試成功了。以下是默認情況下如何以管理員身份運行程序。上一篇博文寫的是如何通過網絡時間更新系統時...

  • session有什么用,session詳解

    session有什么用,session詳解 相關圖片js session本文主要介紹由PHP會話文件的獨占鎖引起的阻塞。本文解釋了當PHP使用默認文件會話處理器時容易導致的阻塞問題的解決方案。您可以參考PHP的默認會話處理器是sesgetsession...

  • on時間的用法,時間前面的介詞用法

    on時間的用法,時間前面的介詞用法 相關圖片quarter的時間用法不定期地計算每月的天數、每周的天數和周末一直是日歷相關應用程序開發中的一大難題。因此,對新程序員來說,日期和時間編程常常令人望而生畏。本文將演示JSP應...

  • 兩個字符串相同的字符,比較兩個字符串有相同字符

    兩個字符串相同的字符,比較兩個字符串有相同字符 相關圖片字符串復制判斷字符串中的相同字符數查找兩個字符串第一個相同字符...

  • 用循環輸出等腰三角形,js輸出等腰三角形

    用循環輸出等腰三角形,js輸出等腰三角形 相關圖片java輸出一個等腰三角形本文通過一個實例說明如何在PHP中輸出等腰三角形。與您分享以供參考。具體實現方法如下:?123456789101213141516171819202122232等腰三角形的講解...

關注微信

变脸官网查询