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("请先扶老太太过马路积累下人品吧...");
}
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()));
}
}
[解决办法]
别忘了给自己留个后门哦。亲。。。。。。。。。。。。。

[解决办法]
亲不要忘记给自己留个概率哦
[解决办法]
1.控制抽奖次数这个比较方便,也容易控制。
[解决办法]
一个可以设置中奖概率的抽奖程序 得分8L可行
关于抽奖概率的编程实现思路问题
[解决办法]
年终晚会上用??LZ好好干,支持8L的说话
[解决办法]
lz参与抽奖不?参与的话别忘了给自己留个后门哦

[解决办法]
纯属来围观的!