php编写的抽奖程序中奖概率算法
先完成后台PHP的流程,PHP的主要工作是负责配置奖项及对应的中奖概率,当前端页面点击翻动某个方块时会想后台PHP发送ajax请求,那么后台PHP根据配置的概率,通过概率算法给出中奖结果,同时将未中奖的奖项信息一并以JSON数据格式发送给前端页面。
先来看概率计算函数
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
上述代码是一段经典的概率算法,$proArr是一个预先设置的数组,假设数组为:array(100,200,300,400),开始是从1,1000这个概率范围内筛选第一个数是否在他的出现概率范围之内, 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间,在本例当中就是减去100,也就是说第二个数是在1,900这个范围内筛选的。这样筛选到最终,总会有一个数满足要求。就相当于去一个箱子里摸东西,第一个不是,第二个不是,第三个还不是,那最后一个一定是。这个算法简单,而且效率非常高,关键是这个算法已在我们以前的项目中有应用,尤其是大数据量的项目中效率非常棒。
接下来我们通过PHP配置奖项。
?
1 2 3 4 5 6 7 8 |
|
该二维数组,记录了所有本次抽奖的奖项信息,其中id表示中奖等级,prize表示奖品,v表示中奖概率。注意其中的v必须为整数,你可以将对应的奖项的v设置成0,即意味着该奖项抽中的几率是0,数组中v的总和(基数),基数越大越能体现概率的准确性。本例中v的总和为100,那么平板电脑对应的中奖概率就是1%,如果v的总和是10000,那中奖概率就是万分之一了。
每次前端页面的请求,PHP循环奖项设置数组,通过概率计算函数get_rand获取抽中的奖项id。将中奖奖品保存在数组$res['yes']中,而剩下的未中奖的信息保存在$res['no']中,最后输出json个数数据给前端页面。
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
另附上一个网友的实现方法
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
https://blog.csdn.net/pksport/article/details/80903403 |
php编写的抽奖程序中奖概率算法相关推荐
- 用php编写比赛评奖系统_php编写的抽奖程序中奖概率算法
们先完成后台PHP的流程,PHP的主要工作是负责配置奖项及对应的中奖概率,当前端页面点击翻动某个方块时会想后台PHP发送ajax请求,那么后台PHP根据配置的概率,通过概率算法给出中奖结果,同时将未中 ...
- php 实现抽奖程序中奖概率算法
请用PHP的array设计一种结构,用于配置抽奖活动,可以配置每种奖品不同的数量,中奖概率.并用文字或代码简要描述使用此数据结构进行抽奖的逻辑. 中奖概率算法(php 可用于刮刮卡,大转盘等抽奖算法) ...
- 游戏抽奖计算机原理,VB6.0编写电脑抽奖程序源码教程
近年来在娱乐节目之中常常见到利用电脑来抽奖,笔者对其发生了兴趣遂自己动手用VB编了一个小程序来实现电脑抽奖的小功能,其原理如下: 主要利用VB中的Rnd函数,来实现随机查找和打乱排序的功能,从而实现随 ...
- java编写一个简单的模拟抽奖程序
//郑州轻工业大学 //题号:实验一 第四题 //题目: 编写一个简单的模拟抽奖程序(模拟抽奖1.0),抽奖时需要输入5个116的整数号码,每个号码不能重复.程序运行后会随机生成5个116幸运号码,然 ...
- 一个可以设置中奖概率的抽奖程序[转]
一个可以设置中奖概率的抽奖程序[转] using System; using System.Collections.Generic; using System.Linq;namespace Conso ...
- php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法
php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法.用法很简单,代码里有详细注释说明,一看就懂 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
- php中奖概率算法,刮刮卡/大转盘抽奖算法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法 前言 一.概率算法 二.奖项数组 三.引用输出 总结 前言 以下是我整理的在项目中 ...
- 1.设计一个抽奖程序,程序通过随机方式产生中奖序号。程序可以设置序号包含数字位数 和最大序号,一次抽取几个中奖序号(最少 1 个序号,最多不超过 2 个序号)和总共中奖 人数(最少 5 人)。抽奖过程
实验目的 掌握随机函数的使用 主要仪器设备及耗材 安装了 JDK1.8 的 PC 一台 实验内容 1.设计一个抽奖程序,程序通过随机方式产生中奖序号.程序可以设置序号包含数字位数 和最大序号 ...
- python随机抽号_使用python的random编写抽奖程序
python代码的random模块,常用函数是random.random,random.randint,random.randrange,random.choice,random.shuffle. ① ...
最新文章
- php时区问题导致php页面显示不正常
- 19、HTML5 新的 Input 类型
- linux重命名的命令行操作,Linux rename命令批量重命名的方法
- PHP arrray_filter(), array_map()区别与应用
- Arcgis Javascript那些事儿(十二)——geometry service几何服务
- 通过设置proxyTable实现调用接口跨域
- python分割文本_python分割文本
- 车载以太网测试之实锤-基于电阻噪声和高斯噪声的SQI测试对比
- androidsettitle方法_在Android应用程序中,Toolbar.setTitle方法无效 - 应用程序名称显示为ti...
- dns服务器不可用了怎么修复,dns服务器可能不可用怎么解决(dns服务器最有效的解决方法)...
- TabWidget当前标签底线颜色
- Neo4j【有与无】【N4】构建图形数据库应用程序
- oracle 生成随机姓名_Oracle生成随机码
- java获取图片的长宽尺寸(毫米)
- 基于jsp+mysql+ssm酒店管理系统-计算机毕业设计
- 关于HP Diagnostics
- 一文梳理2020年大热的对比学习模型
- 闭包实现迭代器功能-- 每用一次函数,返回数组下一个值。 我们需要面对更为复杂的数据结构,他们通常会有这与数组截然不同的序列规则...
- jenkins-配置python
- 私密视频误发到微信群,如何避免视频扩散?
热门文章
- Table实现tr数据滚动
- 百度网盘百度云视频倍速播放方法 亲测有用 共6种,总有一个适合你
- CC2530无线RF,串口透传
- 使用restTemplate请求get接口下载文件
- 快速理解go语言错误与异常处理
- 借助 frp 随时随地访问自己的树莓派
- and门 simuilink_电力电子电路仿真MATLAB应用.PPT
- 断线式防盗报警器电路(六)
- python设置excel自动换行_python xlwt 存成excel并设置行高列宽,自动换行
- kaios好用吗_鸿蒙系统到底能不能够像印度KaiOS那么成功?成第四大操作系统?...