日期:2014-05-17  浏览次数:20429 次

C# 随机数,抽奖
公司要做一个抽奖系统,不同职位的人中奖概率不一样。还没有好的思路,不知怎么去实现。求大神指点一二, 最好能贴出关键的源码。
------解决方案--------------------
好办,经理的,在列表中加10个,普通人加1个
------解决方案--------------------
这个应该用随机数产生器Random吧,默认是产生一次,经理的就循环产生5次。只要产生n次中一次对应就算中奖,只要设置循环变量n就可以控制概率了。

代码就是Random加个循环就行了,比如预设88中奖,那么random.Next(100)产生个随机整数,是88的就中奖。
------解决方案--------------------
说下我的思路:用Random产生随机数,这个没什么好说的.
然后就是设置中奖条件了,你可以用区间来控制.职位越高的人,中奖区间越大.
比如:
假如随机数生成的范围是0-9,那么你可以设置:
员工:随机数必须等于5才能中奖.
经理:随机数在3到6之间都算中奖.
总经理:随机数在2-9之间都算中奖.
源码如下:
static void Main(string[] args)
        {
            bool isContinue = true;
            while (isContinue)
            {
                Console.WriteLine("员工:1");
                Console.WriteLine("经理:2");
                Console.WriteLine("总经理:3");
                Console.WriteLine("输入您的职位代号,按回车开始抽奖:");
                string dutyName = Console.ReadLine();
                //生成一个小于10的正随机整数
                Random ra = new Random();
                int i = ra.Next(10);
                //Console.WriteLine(i);
                //根据职位名称判断用不同的中奖条件判断是否中奖
                switch (dutyName)
                {
                    case "1":
                        if (i == 5)
                        {
                            Console.WriteLine("恭喜你!你中奖了!");
                        }
                        else
                        {
                            Console.WriteLine("请先扶老太太过马路积累下人品吧...