zoukankan      html  css  js  c++  java
  • 一个可以设置中奖概率的抽奖程序[转]

    一个可以设置中奖概率的抽奖程序[转]

    using System;
    using System.Collections.Generic;
    using System.Linq;
     
    namespace ConsoleApplication1
    {
        class Program
        {
     
            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 概率百分比;
            }
     
        }
    }
    

    原文CSDN链接

  • 相关阅读:
    字符输入输出
    每日一例
    每日一例
    结构
    指针数组的初始化
    装箱,拆箱,正则表达式
    数据类型的转换
    怎样让程序不断执行
    SQL练习1关于插入删除,修改,单表查询
    SQLSERVER 总结1
  • 原文地址:https://www.cnblogs.com/dupeng0811/p/7489757.html
Copyright © 2011-2022 走看看