日期:2014-05-18 浏览次数:20503 次
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 概率百分比; } } }