.net C# 抽奖,中奖
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;
}
.net C# 抽奖,中奖的更多相关文章
- PHP+jQuery实现翻板抽奖(中奖概率算法)
在电视节目中有一种抽奖形式暂且叫做翻板抽奖,台上有一个墙面,墙面放置几个大方块,主持人或者抽奖者翻开对应的方块即可揭晓中奖结果.类似的抽奖形式还可以应用在WEB中,本文将使用PHP+jQuery为您讲 ...
- PHP+jQuery实现翻板抽奖
翻板抽奖的实现流程:前端页面提供6个方块,用数字1-6依次表示6个不同的方块,当抽奖者点击6个方块中的某一块时,方块翻转到背面,显示抽奖中奖信息.看似简单的一个操作过程,却包含着WEB技术的很多知识面 ...
- 基于Map的用户注册、登录、抽奖系统
期望功能 方法设计 1.类的设计: 定义两个参与者的属性: private String username; private String userpassword; 2.注册方法: public v ...
- 王之泰201771010131《面向对象程序设计(java)》第二周学习总结
王之泰201771010131<面向对象程序设计(java)>第二周学习总结 第一部分:理论知识学习部分 第三章 第三章内容主要为Java语言的基础语法,主要内容如下 1.基础知识 1.1 ...
- Notes 20180308 : 语句
在讲解流程控制语句之前,我们先来说一下语句的问题.Java中的语句分为声明和赋值语句,条件和循环语句,调用和返回语句:我们之所以每两个放在一起是有深意的,我们大致将语句分为这三块,并以此为纲来说一下, ...
- 扎西平措 201571030332 《面向对象程序设计 (JAVA)》第二周 学习总结
面向对象程序设计 (JAVA)>第二周 学习总结 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ 这 ...
- 201871010123-吴丽丽《面向对象程序设计(java)》第二周学习总结
201871010123-吴丽丽<面向对象程序设计(java)>第二周学习总结 项目 这个作业属于哪个课程 h ...
- 201871010112-梁丽珍《面向对象程序设计(java)》第二周学习总结
项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>http ...
- 201871010101-陈来弟《面向对象程序设计(java)》第二周学习总结
201871010101-陈来弟<面向对象程序设计(java)>第二周学习总结 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs ...
随机推荐
- WPF DataGrid 列显示0,-1(作废、删除)状态,1,2(支出、收入)类型,操作人(在其他表中),如何转换格式。
操作人,左联,Join on letf //容我补充 状态,类型,类似的转换,在xmlns中引入common xmlns:com="clr-namespace:XXX.Common&qu ...
- 【ARTS】01_13_左耳听风-20190204~20190210
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- python3+requests库框架设计04-配置文件
python3配置文件的增删改查等操作可以使用内置的ConfigParser模块,可以自行百度学习,也可以看Python3学习笔记27-ConfigParser模块 配置文件一般存放着环境信息,比如u ...
- 洛谷:P3281 [SCOI2013]数数 (优秀的解法)
刷了这么久的数位 dp ,照样被这题虐,还从早上虐到晚上,对自己无语...(机房里又是只有我一个人,寂寞.) 题目:洛谷P3281 [SCOI2013]数数 题目描述 Fish 是一条生活在海里的鱼, ...
- Laravel - Union + Paginate at the same time? and another problem----1222 The used SELECT statements have a different number of columns (SQL: (select count(*) as aggregate from
### 这是这几天,碰到的一个比较头疼的问题 使用union all联合查询,同时laravel 生成分页,但发生报错? QueryException : SQLSTATE The used from ...
- Java RMI与RPC的区别
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6542811.html 一:RPC 远程过程调用 RPC(Remote Procedure Call Prot ...
- Windows上的程序员神器Cmder
用过Windows版本Git的都知道Git自带了Git Bash,这个在很大程度上满足了我的需求,随着Git的版本升级越来越好用 安装Cmder Cmder官网,它把conemu,msysgit和cl ...
- STM32L476应用开发之一:初次使用
今天终于收到了期待已久的NUCLEO-F412ZG,感谢电子发烧友论坛!多年以来基本都是在STM32平台上做一些设计开发工作.但是低功耗的基本没用过,这次要做便携式设备才对这方面有所接触,正好这时电子 ...
- Windows下安装Confluence并破解汉化
注:本文来源于<Windows下安装Confluence并破解汉化> 一.事前准备 1:JDK下载并安装:jdk-6u45-windows-i586.exe 2:MySQL JDBC连接驱 ...
- 手机端rem 用法
!function(n){ var e=n.document, t=e.documentElement, i=720, d=i/100, o="orientationchange" ...