zoukankan      html  css  js  c++  java
  • 简单的抽奖程序

    private void button1_Click(object sender, EventArgs e)
            {
                Dictionary<stringint> dic = new Dictionary<stringint>();
                dic.Add("苹果", 30);
                dic.Add("梨子", 15);
                dic.Add("南瓜", 60);
     
                int total = 0;
     
                //把几种奖品的属性值加起来。
                foreach (KeyValuePair<stringint> kvp in dic)
                {
                    total += kvp.Value;
                }
     
                Random rnd = new Random();
                int rndNum = rnd.Next(1, total + 1);//随机产生一个【1,total】的数。
                int currentTotal = 0;
                foreach (KeyValuePair<stringint> kvp in dic)
                {
                    currentTotal += kvp.Value;
                    //小于等于前面几种奖品的属性值之和,那么就会是当前这个奖品。
                    if (rndNum <= currentTotal)
                    {
                        MessageBox.Show(rndNum.ToString());
                        MessageBox.Show("此次抽中的是:" + kvp.Key);
                        break;
                    }
                }
            }
     public static void Main()
            {
                var 转盘 = new List<奖品>{ new 奖品{ 名称="笔记本", 概率百分比=10}, 
                     new 奖品{ 名称="石楠木烟斗", 概率百分比=20},
                    new 奖品{ 名称="一块糖", 概率百分比=80},
                    new 奖品{ 名称="随便", 概率百分比=1},
                    new 奖品{ 名称="一只绣花鞋", 概率百分比=5}};
                Enumerable.Range(1, 20).ToList().ForEach(x =>
                {
                    Console.WriteLine("第{0}次选择{1}", x, 抽奖(转盘).名称);
                });
                Console.ReadKey();
            }
     
            static Random Rnd = new Random();
     
            private static 奖品 抽奖(List<奖品> 转盘)
            {
                return (from x in Enumerable.Range(0, 1000000)  //最多支100万次骰子
                        let 随机选择一个奖品 = 转盘[Rnd.Next(转盘.Count())]
                        let 支骰子 = Rnd.Next(0, 100)
                        where 支骰子 < 随机选择一个奖品.概率百分比
                        select 随机选择一个奖品).First();
            }
     
            class 奖品
            {
                public string 名称;
                public int 概率百分比;
            }
  • 相关阅读:
    由button标签在 IE 8.0 下的异常表现引发的一场血案
    【javascript】—— JS判断浏览器类型、操作系统
    【javascrpt】——图片预览和上传,兼容IE 9-
    YII安装smarty-view-renderer扩展
    Yii中用递归方法实现无限级分类
    Yii中Ajax的使用,如收藏功能
    Javascript and AJAX with Yii(在yii 中使用 javascript 和ajax)
    Yii框架zii.widgets.grid自定义按钮,ajax触发事件并提示
    yii 中设置提示成功信息,错误提示信息,警告信息
    Yii Framework 开发教程Zii组件-Tabs示例
  • 原文地址:https://www.cnblogs.com/codeloves/p/3110449.html
Copyright © 2011-2022 走看看