我是靠谱客的博主 灵巧帽子,最近开发中收集的这篇文章主要介绍一个简单的Java抽奖程序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • 需求背景
    • 设计思路
    • 代码实现
      • 定义奖品及中奖概率
      • 执行抽奖
    • 中奖率测试
      • 测试结果数据

本文逻辑思想比较简单,旨在了解后端如何设计抽奖以及控制抽奖概率。

需求背景

现在奖品池有如下奖品:

序号名称中奖率
0代金券10元20%
1代金券50元14%
2蓝牙耳机10%
3Switch游戏机5%
4iPhone 13Pro1%
5谢谢参与50%

需要设计一个抽奖程序,保证最终的抽奖结果近可能贴近每个奖品的中奖率。

设计思路

首先看看现实生活中的抽奖,如大转盘

img

可以看到每个奖品的中奖概率很大程度决定于中奖区域面积占比。

借鉴线下大转盘抽奖思想,是否能应用到我们的抽奖程序里面呢?

在这里插入图片描述
将上面的圆盘展开可以得到如下图形:
在这里插入图片描述
即:

  • 在区间[0,20]为抽中【代金券10元】
  • 在区间(20,34]为抽中【代金券50元】
  • 在区间(34,44]为抽中【蓝牙耳机】
  • 在区间(44,49]为抽中【Switch游戏机】
  • 在区间(49,50]为抽中【iPhone 13Pro】
  • 在区间(50,100]为抽中【谢谢参与】

基于以上思路,我们可以生成一个0~100的随机数,判断这个随机数落在哪个区间,即抽中哪个区间的奖品。

代码实现

定义奖品及中奖概率

在这里插入图片描述

执行抽奖

在这里插入图片描述

中奖率测试

在这里插入图片描述

测试结果数据

抽奖1000次抽奖5000次抽奖10000次抽奖20000次抽奖50000次抽奖100000次
代金券10元 中奖次数:225,中奖率:22.5%代金券10元 中奖次数:1080,中奖率:21.6%代金券10元 中奖次数:2117,中奖率:21.1%代金券10元 中奖次数:4237,中奖率:21.1%代金券10元 中奖次数:10517,中奖率:21.0%代金券10元 中奖次数:20892,中奖率:20.8%
代金券50元 中奖次数:162,中奖率:16.2%代金券50元 中奖次数:729,中奖率:14.5%代金券50元 中奖次数:1341,中奖率:13.4%代金券50元 中奖次数:2756,中奖率:13.7%代金券50元 中奖次数:6983,中奖率:13.9%代金券50元 中奖次数:13876,中奖率:13.8%
蓝牙耳机 中奖次数:97,中奖率:9.7%蓝牙耳机 中奖次数:489,中奖率:9.7%蓝牙耳机 中奖次数:1015,中奖率:10.1%蓝牙耳机 中奖次数:1988,中奖率:9.9%蓝牙耳机 中奖次数:4935,中奖率:9.8%蓝牙耳机 中奖次数:9993,中奖率:9.9%
Switch游戏机 中奖次数:39,中奖率:3.9%Switch游戏机 中奖次数:278,中奖率:5.5%Switch游戏机 中奖次数:500,中奖率:5.0%Switch游戏机 中奖次数:1032,中奖率:5.1%Switch游戏机 中奖次数:2421,中奖率:4.8%Switch游戏机 中奖次数:4914,中奖率:4.9%
iPhone 13Pro 中奖次数:13,中奖率:1.3%iPhone 13Pro 中奖次数:47,中奖率:0.9%iPhone 13Pro 中奖次数:109,中奖率:1.0%iPhone 13Pro 中奖次数:187,中奖率:0.9%iPhone 13Pro 中奖次数:506,中奖率:1.0%iPhone 13Pro 中奖次数:1069,中奖率:1.0
谢谢参与 中奖次数:464,中奖率:46.4%谢谢参与 中奖次数:2377,中奖率:47.5%谢谢参与 中奖次数:4918,中奖率:49.1%谢谢参与 中奖次数:9800,中奖率:49.0%谢谢参与 中奖次数:24638,中奖率:49.2%谢谢参与 中奖次数:49256,中奖率:49.2%

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对比一开始理论“中奖率扇形图”可以看出,实际中奖率基本保持稳定且高度接近预期的各奖品中奖率。

相关代码请参考:一个简单的Java抽奖程序

最后

以上就是灵巧帽子为你收集整理的一个简单的Java抽奖程序的全部内容,希望文章能够帮你解决一个简单的Java抽奖程序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部