.net C# 抽奖,中奖
2024-10-07 01:13:50
demo设置了8个奖项,每个奖项可以自定义中奖率,精度为1/10000
public string PrizeDraw()
{
//奖品以及中奖率
const string prizeString = "奖品一:33,奖品二:30,奖品三:9,奖品四:8,奖品五:7,奖品六:6,奖品七:5,奖品八:2";
//将中奖率*100再取整,放在数组中,并从小到大排序
var prizeArray = prizeString.Split(',').Select(j => new { Prize = j.Split(':')[], Change = (int)(double.Parse(j.Split(':')[])* ) }).OrderBy(j => j.Change).ToArray();
//将中奖率累加,放到字典里
var prizeDictionary = new Dictionary<string, int>();
for (var i = ; i < ; i++)
{
var allChange = ;
for (var j = ; j <= i; j++)
{
allChange += prizeArray[j].Change;
}
prizeDictionary.Add(prizeArray[i].Prize, allChange);
}
//产生一个1-10000的随机数
var rd = new Random();
var rdChange = rd.Next(, );
//找第一个大于随机值的奖项
return prizeDictionary.First(j => j.Value >= rdChange).Key;
}
最新文章
- windows下 安装Kali Linux到 U盘的方法
- 使用Jackson解析Json示例
- CSS 魔法系列:纯 CSS 绘制各种图形《系列六》
- findByExample(Object exampleEntity)方法得到的List判断是否为空,不可用(lis != null)
- 【secureCRT】永久设置背景色和文字颜色
- HDU4539+状态压缩DP
- 函数fseg_set_nth_frag_page_no
- ueditor使用代码高亮的方法
- jquery mobile event
- css中em与px
- Xcode 真机测试破解方法(转加修改)xcode 4.3 通过
- (转)Amoeba for MySQL 非常好用的mysql集群软件
- 逐步搭建Lamp环境之rpm软件包管理
- SpringMVC常用配置
- 第50章:Java操作MongoDB-MongoDB和Spring
- Generative Adversarial Nets[CycleGAN]
- .net mvc 基类属性覆盖问题
- window Form中使用Font Awesome z
- webstrom左侧项目栏不显示文件夹问题
- tcp的发送端一个小包就能打破对端的delay_ack么?