.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(‘:‘)[0], Change = (int)(double.Parse(j.Split(‘:‘)[1])* 100) }).OrderBy(j => j.Change).ToArray();
            //将中奖率累加,放到字典里
            var prizeDictionary = new Dictionary<string, int>();
            for (var i = 0; i < 8; i++)
            {
                var allChange = 0;
                for (var j = 0; j <= i; j++)
                {
                    allChange += prizeArray[j].Change;
                }
                prizeDictionary.Add(prizeArray[i].Prize, allChange);
            }
            //产生一个1-10000的随机数
            var rd = new Random();
            var rdChange = rd.Next(1, 10001);
            //找第一个大于随机值的奖项
            return prizeDictionary.First(j => j.Value >= rdChange).Key;
        }
时间: 2024-12-20 23:36:08

.net C# 抽奖,中奖的相关文章

PHP+jQuery实现翻板抽奖

原文 PHP+jQuery实现翻板抽奖 在电视节目中有一种抽奖形式暂且叫做翻板抽奖,台上有一个墙面,墙面放置几个大方块,主持人或者抽奖者翻开对应的方块即可揭晓中奖结果.类似的抽奖形式还可以应用在WEB中,本文将使用PHP+jQuery为您讲解如何实现翻板抽奖程序. 查看演示 翻板抽奖的实现流程:前端页面提供6个方块,用数字1-6依次表示6个不同的方块,当抽奖者点击6个方块中的某一块时,方块 翻转到背面,显示抽奖中奖信息.看似简单的一个操作过程,却包含着WEB技术的很多知识面,所以本文的读者应该熟

使用原型模式来处理用户抽奖的银两明细

实现功能: 用户抽奖消耗相应银两,将银两明细写入数据库,(为示例简单,体现模式意图,我们假定用户抽奖一定会中奖),将抽中的银两增加给用户也写入数据库   一.银两类: class Silver { const RULE_ADD = 1; const RULE_REDUCE = 2; private $uid; private $type; private $rule; private $quantity; private $desc; private $time; public function

【微信开发】02.搭建一个属于自己的微信公众平台

概述 公司年会上同事开发了一个微信企业号,包含了投票,抽奖,祝福墙功能,还开了一个Session,跟我们讲了下公司的企业号开发过程和抽奖中奖率,觉得蛮有兴趣的,就自己开始了微信公众平台的开发. 目前开发了以下功能: 成语接龙/笑话/留言板/抽奖/祝福墙 1.申请微信公众号 进入微信公众平台https://mp.weixin.qq.com/ 账号类型分三种:服务号/订阅号/企业号 最简单的区别是:订阅号菜单功能和支付功能没有,申请服务号和企业号需要交300块钱进行工商局审批通过才能申请得到 我选择

【转】大话程序猿眼里的高并发

原文: http://blog.thankbabe.com/2016/04/01/high-concurrency/ 大话程序猿眼里的高并发 2016-04-01 YYQ 高并发 高并发  负载均衡  并发  锁  事务  集群 高并发是指在同一个时间点,有很多用户同时的访问URL地址,比如:淘宝的双11,双12,就会产生高并发,如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击,再屌丝点的说法就像玩撸啊撸被ADC暴击了一样,那伤害你懂得(如果你看懂了,这个说法说明是正在奔向人生巅峰的屌丝.

大话程序猿眼里的高并发

高并发是指在同一个时间点,有很多用户同时的访问URL地址,比如:淘宝的双11,双12,就会产生高并发,如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击,再屌丝点的说法就像玩撸啊撸被ADC暴击了一样,那伤害你懂得(如果你看懂了,这个说法说明是正在奔向人生巅峰的屌丝. 高并发会来带的后果 服务端: 导致站点服务器/DB服务器资源被占满崩溃,数据的存储和更新结果和理想的设计是不一样的,比如:出现重复的数据记录,多次添加了用户积分等. 用户角度: 尼玛,这么卡,老子来参加活动的,刷新了还是这样,垃

程序猿眼中的高并发

简单理解下高并发: 高并发是指在同一个时间点,有很多用户同时的访问URL地址,比如:淘宝的双11,双12,就会产生高并发,如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击,再屌丝点的说法就像玩撸啊撸被ADC暴击了一样,那伤害你懂得(如果你看懂了,这个说法说明是正在奔向人生巅峰的屌丝. 高并发会来带的后果 服务端: 导致站点服务器/DB服务器资源被占满崩溃,数据的存储和更新结果和理想的设计是不一样的,比如:出现重复的数据记录,多次添加了用户积分等. 用户角度: 尼玛,这么卡,老子来参加活动的

大话程序猿眼里的高并发(上)

大话程序猿眼里的高并发(上) 高并发是指在同一个时间点,有很多用户同时的访问URL地址,比如:淘宝的双11,双12,就会产生高并发,如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击,再屌丝点的说法就像玩撸啊撸被ADC暴击了一样,那伤害你懂得(如果你看懂了,这个说法说明是正在奔向人生巅峰的屌丝. 高并发会来带的后果 服务端: 导致站点服务器/DB服务器资源被占满崩溃,数据的存储和更新结果和理想的设计是不一样的,比如:出现重复的数据记录,多次添加了用户积分等. 用户角度: 尼玛,这么卡,老子来

201871010123-吴丽丽《面向对象程序设计(java)》第二周学习总结

                        项目                这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/              这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475377.html              作业学习目标 学习并掌握Java Application程序结构: 学习并掌握Java语言的数据类型与变量: 学会使用Java运算符构造各类表达式

中奖概率算法(php 可用于刮刮卡,大转盘等抽奖算法)

php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法.用法很简单,代码里有详细注释说明,一看就懂 <?php /* * 经典的概率算法, * $proArr是一个预先设置的数组, * 假设数组为:array(100,200,300,400), * 开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内, * 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间, * 在本例当中就是减去100,也就是说第二个数是在1,900这个范围内筛选的. * 这样 筛选到最终,总