php实现可以设置中奖概率的抽奖程序代码分享

php实现可以设置中奖概率的抽奖程序代码分享,第1张

这篇文章主要介绍了一个抽奖程序,要求一等奖的中奖概率脊绝滑是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

?>

解决思路如下:

1)以数字区段来对应中奖情况例如有一、二、三等奖,各自的中奖概率分别为10%、20%、30%那么有如下划历灶扰分:1-10,一等奖;11-30,二等奖;31-60,辩陪三等奖,60以上,未中奖

2)产生一个1~100之间的随机数,看随机数属于哪个奖项区域,以确定中奖肢旦情况

没有作弊的一般是按次数,(当然也有概率因素)蠢亏,有作弊的一般是按时间,

理论上没有作弊的话,可以这样实现概率,比如10/100000出现A,100/100000出现B,其他都出现C,那么实现这个要求可以生成一个100000以内的随机数,然后然后根据他进行判断,链档亏如果小于10,那么出现A,大于10小于110,出现B,大于110出现C,

上面的正常的不作弊的中奖概率生成,完全靠系统随机产生

不过对于一般的中奖FLASH,只要是附加了现实的金钱的话棚神,都会弄一些时间或者特殊的中奖控制措施,只要在前面的判断中加入时间的判断就可以实现了

一般的FLASH中奖都只是用FLASH来显示结果而已,生成随机数然后比较都是靠后台的ASP或者PHP脚本实现的,所以光靠FLASH最多只能说你可以没有限制的实现不停的抽奖(也就是不停的调用ASP或者PHP脚本),而不可能实现肯定抽中奖!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12430464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存