抽獎演算法php
㈠ 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抽獎問題,獎項id為1的一等獎,每天只能出現一次,該怎麼實現;
保存 一等獎 和 抽獎時間。如果今天一等獎已經抽中了,就跳過。
㈣ 怎樣製作轉盤網站
這個PHP的可以做,一般是JQUERY結合插件來實現了,按照角度來轉,抽獎演算法代碼一般是PHP編程實現
㈤ PHP 數組隨機抽獎,如何實現
使用shuffle ,
把獎項存入數組,對數組shuffle 隨機排序就OK了
例如:
$a=array('A','B','C','D');//抽到C為獎
shuffle ( $a );
如何類推,數組可以是多維數組,關鍵是shuffle 函數的使用。
㈥ 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
㈦ 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 抽獎活動每天只有三次機會是怎麼實現!求思路,求代碼,
記錄下當前用戶
當天抽獎次數
每次抽獎操作來判斷這個用戶的抽獎次數
,大於大於等於3
就不讓他抽
就行了
㈨ 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+MySQL實現抽獎代碼問題
首先關於PHP+MYSQL來實現不可以重復抽獎這個很好實現,因為你抽獎的頁面要麼是動態要麼是AJAX來實現的。首先AJAX的先不說,我先說關於動態頁面實現。
那麼就是載入頁面的時候判斷對方今日有沒有抽過,如果抽過了那麼就用if語句來不執行抽獎代碼。其實裡面還有很多的細節問題,你說讓貼出代碼,我不願意抄別人的東西,同時網上給的代碼好用的很少。
你要是想做一個有個性的功能還是要自己寫的或者修改,不知道你對JS了解多少也沒法說。我說的就是大概的思路。
樣式千萬種,你找到一個你覺得方便而且能達到你目的的同時針對自己的知識的吧。其實不論那種方式都是要用到AJAX的用來確認已經抽過。