C# 随机数,抽奖

t101lian 2012-12-24 03:03:46
公司要做一个抽奖系统,不同职位的人中奖概率不一样。还没有好的思路,不知怎么去实现。求大神指点一二, 最好能贴出关键的源码。
...全文
477 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
lz参与抽奖不?参与的话别忘了给自己留个后门哦
yyl8781697 2012-12-25
  • 打赏
  • 举报
回复
年终晚会上用??LZ好好干,支持8L的说话
mails2008 2012-12-25
  • 打赏
  • 举报
回复
1.控制抽奖次数这个比较方便,也容易控制。
乌鸦__ 2012-12-25
  • 打赏
  • 举报
回复
亲不要忘记给自己留个概率哦
t101lian 2012-12-25
  • 打赏
  • 举报
回复
引用 4 楼 siqiutong 的回复:
说下我的思路:用Random产生随机数,这个没什么好说的. 然后就是设置中奖条件了,你可以用区间来控制.职位越高的人,中奖区间越大. 比如: 假如随机数生成的范围是0-9,那么你可以设置: 员工:随机数必须等于5才能中奖. 经理:随机数在3到6之间都算中奖. 总经理:随机数在2-9之间都算中奖. 源码如下: C# code?1234567891011121……
果然是大神,厉害! 不过你写的是C# window form, 我是要做.Net Web 开发
  • 打赏
  • 举报
回复
别忘了给自己留个后门哦。亲。。。。。。。。。。。。。
t101lian 2012-12-25
  • 打赏
  • 举报
回复
嗯, 8楼很给力,,, 给分结贴咯
YK138168 2012-12-25
  • 打赏
  • 举报
回复
纯属来围观的!
YshuuiNew 2012-12-24
  • 打赏
  • 举报
回复
“不同职位的人中奖概率不一样”,为什么呢? 按职位的人数取,职位高的人数少,职位低的人数多。 员工:100人取1个。 经理:10人取1个 总经理:3人取1个。
Assassin_ 2012-12-24
  • 打赏
  • 举报
回复
4楼的思路不错 。 代码优化下就好了!
残月照我心 2012-12-24
  • 打赏
  • 举报
回复
引用 4 楼 siqiutong 的回复:
说下我的思路:用Random产生随机数,这个没什么好说的. 然后就是设置中奖条件了,你可以用区间来控制.职位越高的人,中奖区间越大. 比如: 假如随机数生成的范围是0-9,那么你可以设置: 员工:随机数必须等于5才能中奖. 经理:随机数在3到6之间都算中奖. 总经理:随机数在2-9之间都算中奖. 源码如下: C# code?1234567891011121……
高人啊
siqiutong 2012-12-24
  • 打赏
  • 举报
回复
说下我的思路:用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("请先扶老太太过马路积累下人品吧...");
                        }
                        break;
                    case "2":
                        if (i >= 4 && i <= 6)
                        {
                            Console.WriteLine("恭喜你,你中奖了!");
                        }
                        else
                        {
                            Console.WriteLine("请先扶老太太过马路积累下人品吧...");
                        }
                        break;
                    case "3":
                        if (i >= 2 && i <= 7)
                        {
                            Console.WriteLine("恭喜你,你中奖了!");
                        }
                        else
                        {
                            Console.WriteLine("请先扶老太太过马路积累下人品吧...");
                        }
                        break;
                    default:
                        Console.WriteLine("没有该职位!");
                        break;
                }
                Console.WriteLine("是否继续抽奖?(Y/N)");
                string answer = Console.ReadLine();
                isContinue = ("y".Equals(answer.ToLower()));
            }
        }
t101lian 2012-12-24
  • 打赏
  • 举报
回复
引用 2 楼 dalmeeme 的回复:
这个应该用随机数产生器Random吧,默认是产生一次,经理的就循环产生5次。只要产生n次中一次对应就算中奖,只要设置循环变量n就可以控制概率了。 代码就是Random加个循环就行了,比如预设88中奖,那么random.Next(100)产生个随机整数,是88的就中奖。
大神讲的很好, 同时奖品也是有很多种的, 抽中的就要从中减掉。 只是我还是个新手, 对随机数又不懂 , 能否贴出代码
dalmeeme 2012-12-24
  • 打赏
  • 举报
回复
这个应该用随机数产生器Random吧,默认是产生一次,经理的就循环产生5次。只要产生n次中一次对应就算中奖,只要设置循环变量n就可以控制概率了。 代码就是Random加个循环就行了,比如预设88中奖,那么random.Next(100)产生个随机整数,是88的就中奖。
bdmh 2012-12-24
  • 打赏
  • 举报
回复
好办,经理的,在列表中加10个,普通人加1个

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧