实现不同概率抽奖功能
2016-04-27 16:41
225 查看
序号 | 物品名称 | 物品ID | 抽奖概率 |
1 | 物品1 | P1 | 0.2 |
2 | 物品2 | P2 | 0.1 |
3 | 物品3 | P3 | 0.4 |
4 | 物品4 | P4 | 0.3 |
5 | 物品5 | P5 | 0.0 |
6 | 物品6 | P6 | -0.1 |
7 | 物品7 | P7 | 0.008 |
?
?
?
就是把0到1的区间分块,而分块的依据就是物品占整个的比重,再根据随机数种子来产生0-1中间的某个数,来判断这个数是落在哪个区间上,而对应的就是抽到了那个物品。随机数理论上是概率均等的,产生的每个数理论上也应该概率均等,那么相应的区间所含数的多少就体现了抽奖物品概率的不同。(p.s. 当然数目是数不清楚的,具体抽象话了点)
这个实例的数据可以说明
1. 概率可以是负数和0,当然实际上中应该不会(p.s. 正常情况下可能真的有0,比如抽个iphone5,当然是抽不到的了,这个时候,构建礼物(List gifts)的时候最好就不要加这个进去),还有可以把负数的处理放到抽奖工具类(LotteryUtil)中;
2. 所有礼物加起来的概率可以不是1,可以认为这里的概率是一个权重;
相关文章推荐
- 第八周项目1—数组做数据成员(多文件)
- Activity 里面点击弹出Dialog ,第二次进入点击崩溃!
- 华丽丽的GridLayout-使用案例
- Java常见问题-JRE版本
- koa-send 实现下载文件
- MySQL子查询与连接
- Android酷炫实用的开源框架(UI框架)
- MS三轮面试总结
- 动态创建style片段和script片段
- frame和bounds的区别&&关于CGRect包含交错,边缘,中心的检测
- 图的最小生成树
- Build.gradle详细配置说明
- 个人冲刺02
- 在线制作安卓手机主题
- [netty] netty socket.io的安装测试
- 使用RoboCopy 命令
- ArcMap如何将矢量线、面要素的坐标存储至TXT文本文件
- Redis命令-有序集合-zscan
- 在继承自 UITableViewController 重构时使用 xib 无法显示问题,
- iOS应用架构谈-本地持久化方案及动态部署