當前位置:首頁 » 編程語言 » php抽獎概率

php抽獎概率

發布時間: 2022-08-04 05:20:35

『壹』 php一個抽獎函數(自定義中獎項數和概率)

解決思路如下:
1)以數字區段來對應中獎情況例如有一、二、三等獎,各自的中獎概率分別為10%、20%、30%那麼有如下劃分:1-10,一等獎;11-30,二等獎;31-60,三等獎,60以上,未中獎

2)產生一個1~100之間的隨機數,看隨機數屬於哪個獎項區域,以確定中獎情況

『貳』 如何用PHP製作有獎品(數量)的轉盤抽獎

這個不是有key值么,抽到後把這個key值的給unset()
unset() 方法
注意如果你使用 unset() 方法,它是不會改變其他的鍵(key),如果你想對其他的鍵(key)重新整理排序,可以使用 array_values()。
<?php
$array = array(0 => "a", 1 => "b", 2 => "c");unset($array[1]);
//↑ 你要刪除的數組元素值的鍵print_r($array);?>

輸出結果:
Array (
[0] => a [2] => c)

『叄』 PHP金額越高中獎率越大,如何實現

你可以把輸入的比率都轉換成n/10000
然後按n來抽獎
比如1等獎1/1000 即 10/10000
2等獎 30/10000
3等獎 200/10000
4等獎3000/10000
那麼10+30+200+3000=3240;
取隨機數 r.Next(1,10001)
當0<r<=10 則為1等獎
當 10<r<=10+30 則中2等獎
當 10+30<r<=10+30+200 則中3等獎依次

根據金額判斷他的概率

『肆』 php實現可以設置中獎概率的抽獎程序代碼分享

這篇文章主要介紹了一個抽獎程序,要求一等獎的中獎概率是0.12%,二等獎中獎概率是3%,三等獎中獎概率是12%,其他中獎概率是都是謝謝惠顧
代碼如下:
<?php
/**
*
抽獎
*
@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;
?>

『伍』 php概率計算

額 這個很簡單啊 他點擊抽獎的時候你可以生成一個隨機數,假設隨機數為1-10000,生成數在1-5之間對應一個位置,在6-10對應一個位置啊 ... 其他的對應空白,就這樣的,數可以傳到後台,後台做位置對應,然後控制抽獎的圖片轉動到指定位置就行了。你要是怕人家運氣太好連續中,你還可以設置更低些,或者生成位置之前檢測下,如果已經有人中過獎了就讓他對應到空白- -

PS:抽獎神馬的都是坑爹

『陸』 php大轉盤的獲獎概率是怎麼算的

php中獎概率演算法,可用於刮刮卡,大轉盤等抽獎演算法。用法很簡單,代碼里有詳細注釋說明,一看就懂

$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,那中獎概率就是萬分之一了。

*

*/

$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),

);

/*

* 每次前端頁面的請求,PHP循環獎項設置數組,

* 通過概率計算函數get_rand獲取抽中的獎項id。

* 將中獎獎品保存在數組$res['yes']中,

* 而剩下的未中獎的信息保存在$res['no']中,

* 最後輸出json個數數據給前端頁面。

*/

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;$i

『柒』 抽獎的概率怎麼定 thinkphp

根據設定的中獎概率數組進行數據的輸出
function getRand($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;
}

『捌』 php取隨機數概率演算法

問題有點模糊,我先暫時把「保留兩位小數」理解成「[輸出的隨機數]保留兩位小數」,而非其他因素保留多少小數。
又把「1-10」,理解成包括1和10在內其兩數之間的小數,
把10-50,理解成10.01到50.00之間的數,不包括10.00。以此類推。

<?php
functiongenRandom(){
$p=rand(1,100);
if($p<=60)$r=rand(100,1000);
elseif($p>60and$p<=85)$r=rand(1001,5000);
elseif($p>85and$p<=95)$r=rand(5001,10000);
else$r=rand(10001,20000);
return$r/100;
}
$a=array();
$total=50000;
for($i=0;$i<$total;$i++){
$c=genRandom();
if($c>=1and$c<=10)$p=0;
elseif($c>10and$c<=50)$p=1;
elseif($c>50and$c<=100)$p=2;
elseif($c>100and$c<=200)$p=3;
else$p=4;
if(!array_key_exists($p,$a))$a[$p]=1;
else$a[$p]++;
}
if(!array_key_exists(4,$a))$a[4]=0;
echo"總樣本數".$total.'<br/>';
echo"1-10樣本數".$a[0].',占'.($a[0]/$total*100).'%<br/>';
echo">10-50樣本數".$a[1].',占'.($a[1]/$total*100).'%<br/>';
echo">50-100樣本數".$a[2].',占'.($a[2]/$total*100).'%<br/>';
echo">100-200樣本數".$a[3].',占'.($a[3]/$total*100).'%<br/>';
echo"其他樣本數".$a[4].',占'.($a[4]/$total*100).'%<br/>';
總樣本數50000
1-10樣本數30052,佔60.104%
>10-50樣本數12404,佔24.808%
>50-100樣本數4993,佔9.986%
>100-200樣本數2551,佔5.102%
其他樣本數0,佔0%

『玖』 php生成隨機數,1-15之間,2出現的概率是80% 然後其它數字出現的概率是10%

$rand = 0; // 定義rank隨機變數
if(mt_rand(1,100) <= 80) { // 控制2出現的概率為80%
$rand = 2;
} else { // 剩餘數字的概率為20%
$rand = mt_rand(2,15); // 排除掉2號位置,用1去補2號位
if($rand == 2) { // 當隨機到2號位,則用1去補2號
$rand = 1;
}
}
echo $rand; // 輸出結果

http://w3school.com.cn/php/func_math_mt_srand.asp

熱點內容
cmd腳本執行sql腳本 發布:2025-01-23 03:46:51 瀏覽:114
搭建100人的游戲伺服器 發布:2025-01-23 03:37:43 瀏覽:516
b站台解析伺服器ip 發布:2025-01-23 03:36:12 瀏覽:202
安卓手機在哪裡看港劇 發布:2025-01-23 03:35:30 瀏覽:51
黑漫的伺服器ip 發布:2025-01-23 03:16:40 瀏覽:650
tplink無internet訪問 發布:2025-01-23 03:15:18 瀏覽:566
原神用安卓手機玩為什麼畫質那麼低 發布:2025-01-23 03:09:31 瀏覽:847
空調壓縮機是外機嗎 發布:2025-01-23 03:09:31 瀏覽:950
大學資料庫學 發布:2025-01-23 02:54:30 瀏覽:588
部隊營區監控系統錄像存儲多少天 發布:2025-01-23 02:49:26 瀏覽:523