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

?>

这个不是有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)

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

理论上没有作弊的话,可以这样实现概率,比如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/12331007.html

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

发表评论

登录后才能评论

评论列表(0条)

保存