设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
php实现自定义中奖项数和概率的抽奖函数示例 ...
返回列表
查看:
1439
|
回复:
0
php实现自定义中奖项数和概率的抽奖函数示例
[复制链接]
福多多fluke
当前离线
积分
7736
2600
主题
2600
帖子
7736
积分
论坛元老
论坛元老, 积分 7736, 距离下一级还需 9992263 积分
论坛元老, 积分 7736, 距离下一级还需 9992263 积分
积分
7736
发消息
电梯直达
楼主
发表于 2018-2-14 05:25:45
|
只看该作者
|
倒序浏览
|
阅读模式
本文实例讲述了php实现自定义中奖项数和概率的抽奖函数。分享给大家供大家参考,具体如下:
_rate = $rate;
if (array_sum($this->_rate) > 100)//检测概率设置是否有问题
throw new Exception('Winning rate upto 100%');
if (array_sum($this->_rate) _rate[] = 100 - array_sum($this->_rate);
}
/*
* 随机生成一个1-10000的整数种子,提交给中奖判断函数
* @return int,按传入的概率排序,返回中奖的项数
*/
public function runOnce() {
return $this->judge(mt_rand(0, 10000));
}
/*
* 按所设置的概率,判断一个传入的随机值是否中奖
* @param int,$seed 10000以内的随机数
* @return int,$i 按传入的概率排序,返回中奖的项数
*/
protected function judge($seed) {
foreach ($this->_rate as $key => $value) {
$tmpArr[$key + 1] = $value * 100;
}
//将概率乘十后累计,以便随机选择,组合成
$tmpArr[0] = 0;
foreach ($tmpArr as $key => $value) {
if ($key > 0) {
$tmpArr[$key] += $tmpArr[$key - 1];
}
}
for ($i = 1; $i setRate($rate);
for ($i = 0; $i runOnce();
@$rewards[$b]++;
}
unset($rewards['']);
echo array_sum($rewards);
?>
运行10000次,对比设置概率和中奖次数
设置概率中奖次数
%
%
%
%
%
%
PS:这里再为大家提供两款功能类似的在线工具供大家参考:
在线随机数字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
高强度密码生成器:
http://tools.jb51.net/password/CreateStrongPassword
更多关于PHP相关内容感兴趣的读者可查看本站专题:《
php字符串(string)用法总结
》、《
PHP数据结构与算法教程
》、《
php程序设计算法总结
》、《
php排序算法总结
》、《
PHP常用遍历算法与技巧总结
》、《
PHP数学运算技巧总结
》、《
PHP数组(Array)操作技巧大全
》及《
php常见数据库操作技巧汇总
》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:
php中通过数组进行高效随机抽取指定条记录的算法
php实现可以设置中奖概率的抽奖程序代码分享
适用于抽奖程序、随机广告的PHP概率算法实例
php编写的抽奖程序中奖概率算法
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
php实现概率性随机抽奖代码
php抽奖概率算法(刮刮卡,大转盘)
微信随机生成红包金额算法php版
微信红包随机生成算法php版
PHP编程实现计算抽奖概率算法完整实例
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
用户反馈
客户端