已添加以下功能:
- 增加了奖项计数器,记录每种奖项的中奖次数
- 添加了
printStatistics()
方法,输出各奖项的中奖次数和百分比 - 主程序在退出时会显示完整的抽奖统计信息
- 改进了浮点数输出格式,保留两位小数
-
调整基础概率分布
- 特等奖:1%(动态调整)
- 一等奖:5%
- 二等奖:15%
- 三等奖:25%
- 未中奖:54%
-
改进保底机制
- 采用动态概率替代硬性保底
- 连续未中特等奖时概率逐渐提升:
- 第 40 次:3%
- 第 45 次:13%
- 第 50 次:21%
-
新增功能
- 可随时查看当前各奖项实际概率
- 显示连续未中特等奖的次数
-
优化用户体验
- 更清晰的概率说明
- 实时显示当前抽奖状态
- c++代码:
#include <bits/stdc++.h>
enum class Prize {
NONE,
THIRD,
SECOND,
FIRST,
SPECIAL
};class LotterySystem {
private:
int drawCount;
std::mt19937 randomEngine;
std::uniform_real_distribution<double> probabilityDist;
int prizeCounts[5] = {0};
int specialDraws;public:
LotterySystem() : drawCount(0), specialDraws(0) {
randomEngine.seed(std::time(nullptr));
probabilityDist = std::uniform_real_distribution<double>(0.0, 100.0);
}Prize draw() {
drawCount++;
specialDraws++;double baseSpecialRate = 1.0;
double dynamicSpecialRate = baseSpecialRate;if (specialDraws >= 40) {
dynamicSpecialRate += (specialDraws - 39) * 2.0;
}dou