1. 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等獎依次
根據金額判斷他的概率
2. php概率計算
額 這個很簡單啊 他點擊抽獎的時候你可以生成一個隨機數,假設隨機數為1-10000,生成數在1-5之間對應一個位置,在6-10對應一個位置啊 ... 其他的對應空白,就這樣的,數可以傳到後台,後台做位置對應,然後控制抽獎的圖片轉動到指定位置就行了。你要是怕人家運氣太好連續中,你還可以設置更低些,或者生成位置之前檢測下,如果已經有人中過獎了就讓他對應到空白- -
PS:抽獎神馬的都是坑爹
3. php 抽獎代碼,100分獎勵
中獎概率是40%
<?php
/**
* 抽獎
* @param int $total
*/
function getReward($total=1000)
{
$win1 = floor((40*$total)/100);
$other = $total-$win1;
$return = array();
for ($i=0;$i<$win1;$i++)
{
$return[] = 1;
}
for ($n=0;$n<$other;$n++)
{
$return[] = '未抽中獎品';
}
shuffle($return);
return $return[array_rand($return)];
}
$data = getReward();
echo $data;
?>
4. 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%
5. 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;
?>
6. 要開發一個抽獎程序
我只說下思路,具體的實現看個人愛好的語言:
1.關於一,二,三等獎
隨機生成三個數(註:如果生成數的范圍),然後這三個數就是一,二,三等獎的比對數了
2.關於中獎(忽略中獎率的問題)
抽獎就是生成一個隨機數,與一,二,三等獎的比對數相比對,如果是相等,或者差在什麼樣的范圍內,就是中獎了
3.關於中獎率
中獎率這個問題可以用抽獎數與比對數之間的差范圍控制,還有,抽獎比對數必須在什麼樣的范圍內
7. 求一個抽獎系統不要轉盤的,php的,寫好注釋
前台頁面:
<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf8"/><!--頁面編碼方式-->
<title>抽獎系統</title>
</head>
<styletype="text/css">
#result{color:red;padding-top:10px;}
</style>
<scriptsrc="
<scripttype="text/javascript">
$(document).ready(function(){
$("#lottery").click(function(){
$.ajax({
url:'handle.php',//請求結果頁
type:'POST',//請求方式
data:{info:$("#info").val()},//傳送用戶信息
dataType:'html',//傳輸數據類型格式
success:function(response){
$("#result").html(response);//顯示返回結果
}
});
});
});
functionsubmit(){
returnfalse;//不處理默認提交請求,走ajax請求。
}
</script>
<body>
<formaction="javascript:submit();"method="post">
<table>
<tr>
<inputtype="hidden"value="personinfo"name="info"id="info"/><!--隱藏欄位,表示用戶,可以換成用戶的信息-->
<td><labelfor="lottery">抽獎</label></td>
<td><inputid="lottery"type="submit"name="lottery"value="點擊幸運抽獎"></td>
</tr>
<tr>
<tdcolspan="2"id="result"></td><!--通過ajax展示結果-->
</tr>
</table>
</form>
</body>
</html>
後台處理頁面:
<?php
header("Content-type:text/html;charset=utf-8");
$info=$_POST["info"];//接受用戶標識,以後保存到資料庫
$rand=rand(1,10);//從1-10中隨機取出一個數字,這里可以自己調整范圍,如果為1,100那麼中獎率就大致為1/100.
if($rand==5){//如果等於5,就中獎了,這里隨便設置一個數就行
echo"恭喜你中獎了!";
}else{
echo"抱歉,下次加油!";
}
?>
如有疑問,請追問。
8. php一個抽獎函數(自定義中獎項數和概率)
解決思路如下:
1)以數字區段來對應中獎情況例如有一、二、三等獎,各自的中獎概率分別為10%、20%、30%那麼有如下劃分:1-10,一等獎;11-30,二等獎;31-60,三等獎,60以上,未中獎
2)產生一個1~100之間的隨機數,看隨機數屬於哪個獎項區域,以確定中獎情況
9. 抽獎的概率怎麼定 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;
}
10. 如何用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)