冥想_ PHP抽奖程序概率算法
//概率算法,6个奖项
$prize_arr = array(
'0' => array('id'=>1,'prize'=>'iphone6','v'=>1),
'1' => array('id'=>2,'prize'=>'数码相机','v'=>5),
'2' => array('id'=>3,'prize'=>'音箱设备','v'=>10),
'3' => array('id'=>4,'prize'=>'50Q币','v'=>24),
'4' => array('id'=>5,'prize'=>'10Q币','v'=>60),
'5' => array('id'=>6,'prize'=>'1Q币','v'=>1900),
); //每个奖品的中奖几率,奖品ID作为数组下标
foreach($prize_arr as $val){
$item[$val['id']] = $val['v'];
} function get($item){
//中奖概率基数
$num = array_sum($item);//当前一等奖概率1/2000 foreach($item as $k=>$v){
//获取一个1到当前基数范围的随机数
$rand = mt_rand(1,$num);
if($rand <= $v){
//假设当前奖项$k=2,$v<=5才能中奖
$res = $k;
break;
}else{
//假设当前奖项$k=6,$v>1900,则没中六等奖,总获奖基数2000-1900,前五次循环都没中则2000-1-5-10-24-60=1900,必中6等奖,哈哈
$num -= $v;
}
}
return $res;
} $res = get($item);
$h = $prize_arr[$res-1]['prize'];
echo $h.'; ';
冥想_ PHP抽奖程序概率算法的更多相关文章
- 幸运大转盘-jQuery+PHP实现的抽奖程序
目前好多网站上应用的转盘抽奖程序大多是基于flash的,而本文结合实例将使用jQuery和PHP来实现转盘抽奖程序,为了便于理解,作者分两部分来讲解,本文讲解第一部分,侧重使用jQuery实现转盘的转 ...
- sql的行转列(PIVOT)与列转行(UNPIVOT) webapi 跨域问题 Dapper 链式查询 扩展 T4 代码生成 Demo (抽奖程序)
sql的行转列(PIVOT)与列转行(UNPIVOT) 在做数据统计的时候,行转列,列转行是经常碰到的问题.case when方式太麻烦了,而且可扩展性不强,可以使用 PIVOT,UNPIVOT比 ...
- 使用jQuery+PHP+Mysql实现抽奖程序
抽奖程序在实际生活中广泛运用,由于应用场景不同抽奖的方式也是多种多样的.本文将采用实例讲解如何利用jQuery+PHP+Mysql实现类似电视中常见的一个简单的抽奖程序. 查看演示 本例中的抽奖程序要 ...
- jQuery幸运大转盘_jQuery+PHP抽奖程序的简单实现
jQuery幸运大转盘_jQuery+PHP抽奖程序的简单实现 在线实例 查看演示 完整代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
- .net+mssql制作抽奖程序思路及源码
近期一直在研究数据库,刚好有个项目要做抽奖程序,恩,拿来练练手吧. 抽奖程序: 思路整理,无非就是点一个按钮,然后一个图片旋转一会就出来个结果就行了,可这个程序的要求不是这样的,是需要从数据库中随机抽 ...
- 一个好玩的jq+php实现转盘抽奖程序
前台页面: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <met ...
- 简单的javascript抽奖程序
<html> <head> <title>手机号码抽奖程序</title> <script> //声明一个数组装住号码,可根 ...
- iOS抽奖程序
iOS抽奖程序 代码下载地址: http://vdisk.weibo.com/s/HKehU http://pan.baidu.com/share/link?shareid=893330225& ...
- java模拟一个抽奖程序
今天用一个程序模拟一个从1-32之间,随机抽取7组号码的抽奖程序 * 需要使用Java的图形界面知识 * 窗口 JFrame * 面板 JPanel * 显示文本信息的标签 JLabel * 文 ...
随机推荐
- USB2.0学习笔记连载(十四):USB驱动安装及固件程序的编写
在之前的博客中已经讲过,驱动程序最核心的两个文件,一个是xxx.sys文件,一个是xxx.inf文件,主机是寻找xxx.inf文件. 在下面的文件中有相关关于USB驱动的说明.对于用户来说,xxx.s ...
- github开源库(三)
41.android-swipelistview SwipeListView是一个Android List View实现,实现了自定义ListView单元格,可通过滑动来显示扩展面板.开发者可直接登陆 ...
- 苹果Mac OS系统修改Hosts文件的方法
使用苹果Mac OS X系统的用户有很多,近期也有不少童鞋问我Mac怎么修改hosts,修改hosts的方式有很多,下面我就整理两种比较方便的方法吧,希望能够帮到大家. 在某些时候可能遇到了需要修改系 ...
- model ,orm,dao,service,持久层 ,mvc 这些名词在java中的概念?
这些概念不针对某个特定的编程语言. view层:结合control层,显示前台页面. control层:业务模块流程控制,调用service层接口. service层:业务操作实现类,调用dao层接口 ...
- python 调用 C语言函数
python可以直接调用C语言的函数,本文记录用ctypes调用c语言的方法. test.c #include <stdio.h> int test(char *temp) { print ...
- Android Studio 出现 Build gradle project info
导入Android Studio,一直停留在Build gradle project info.主要是因为google被墙,下载gradle很慢,有时候设置下载不成功. 参考链接 http://blo ...
- CI框架 -- 网页缓存
CodeIgniter 可以让你通过缓存页面来达到更好的性能. 尽管 CodeIgniter 已经相当高效了,但是网页中的动态内容.主机的内存 CPU 和数据库读取速度等因素直接影响了网页的加载速度. ...
- spark 修改分区(存储结果需要)
修改分区就行了val rdd1 = sc.parallelize(Array(1,2,3,4,5,6,7,8))# 查看分区数rdd1.partitions.length# 改成1个分区val rd ...
- p12证书转keystore签名
java https://my.oschina.net/u/555639/blog/524821 AIR p12转keystore证书签名apk 2014年01月03日 ⁄ 移动探索 ⁄ 评论数 ...
- 视觉单词模型、词袋模型BoW
多用于图像检索.分类 3.2.1.4 视觉单词模型 视觉词袋(BoVW,Bag of Visual Words)模型,是“词袋”(BoW,Bag of Words)模型从自然语言处理与分析领域向图像处 ...