中奖几率

DragonerHuang 2014-01-20 06:07:07
根据奖励的等级分配不同来实现这个中奖几率,如下面:

一等奖的奖品:10件;
二等奖的奖品:20件;
三等奖的奖品:30件;
四等奖的奖品:40件;
五等奖的奖品:50件;

如何根据不同等级的的数量来判断中奖几率 ?
...全文
118 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
DragonerHuang 2014-01-20
  • 打赏
  • 举报
回复
想到方案了,谢谢几位了!
DragonerHuang 2014-01-20
  • 打赏
  • 举报
回复
引用 11 楼 u011130289 的回复:
[quote=引用 4 楼 DragonerHuang 的回复:] [quote=引用 3 楼 u011130289 的回复:] [quote=引用 2 楼 DragonerHuang 的回复:] [quote=引用 1 楼 yp136 的回复:] 数学题?有放回还是无放回?
一个抽奖功能,实现它的中奖几率! 什么是回放?什么是无回放?[/quote] ls说的是抽出来放回去,那小学的计算概率题,你这个各个中奖概率=各件总数/全部总数*100%[/quote] 你这个是百分百的中奖率了, 不好意思,我的问题没有问清楚, 毎一个级别的几率都不同, 如:1级的几率是 10%; 2级的几率是 20%; .... 当然不是有规律的几率,这个几率是由我们自己来定写的[/quote] 那你可以弄个数组,想要什么概率就存多少个数,好像1000个数你要1等级概率为0.1那你就存个1代表1等奖,其他的全部存别的,不过这样是有点误差的[/quote] 存数组就太固定了,不够灵活
DragonerHuang 2014-01-20
  • 打赏
  • 举报
回复


比如这张图这样的结构,
上面一个列表里面就是设置这个每个级别的数量,全部设置好之后,下面就可以设置这个概率来做这个中奖的几率,可以问下这种如何去做判断?
Regan-lin 2014-01-20
  • 打赏
  • 举报
回复
引用 4 楼 DragonerHuang 的回复:
[quote=引用 3 楼 u011130289 的回复:] [quote=引用 2 楼 DragonerHuang 的回复:] [quote=引用 1 楼 yp136 的回复:] 数学题?有放回还是无放回?
一个抽奖功能,实现它的中奖几率! 什么是回放?什么是无回放?[/quote] ls说的是抽出来放回去,那小学的计算概率题,你这个各个中奖概率=各件总数/全部总数*100%[/quote] 你这个是百分百的中奖率了, 不好意思,我的问题没有问清楚, 毎一个级别的几率都不同, 如:1级的几率是 10%; 2级的几率是 20%; .... 当然不是有规律的几率,这个几率是由我们自己来定写的[/quote] 那你可以弄个数组,想要什么概率就存多少个数,好像1000个数你要1等级概率为0.1那你就存个1代表1等奖,其他的全部存别的,不过这样是有点误差的
DragonerHuang 2014-01-20
  • 打赏
  • 举报
回复
引用 9 楼 starfd 的回复:
这个用的linq啊。。。。这个是100%中奖 不是100%中奖么就是 int priNums=10; int random=rd.Next(100); if(priNums==0) { //没奖品了 return; } if(random<10) {//中奖 priNums--; } else { //没中奖 }
这样没级级别的限制了,所有的级别难度都一样了
  • 打赏
  • 举报
回复
这个用的linq啊。。。。这个是100%中奖 不是100%中奖么就是 int priNums=10; int random=rd.Next(100); if(priNums==0) { //没奖品了 return; } if(random<10) {//中奖 priNums--; } else { //没中奖 }
DragonerHuang 2014-01-20
  • 打赏
  • 举报
回复
引用 6 楼 starfd 的回复:
Random rd = new Random();
                Dictionary<int, int> dic = new Dictionary<int, int>();
                for (int i = 1; i <= 5; i++)
                {
                    dic.Add(i, i * 10);
                }
                int sum = dic.Values.Sum(i => i);
                if (sum == 0)
                {
                    Console.WriteLine("奖品抽完了");
                }
                int random = rd.Next(sum);
                int num = dic.Where(d => d.Value < random).First().Key;
                dic[num] -= 1;
                Console.WriteLine(num + "等奖");
你好,这个语法少见,可以说下吗? dic.Values.Sum(i => i) 这里的这个i可以拿出来的吗
DragonerHuang 2014-01-20
  • 打赏
  • 举报
回复
引用 5 楼 yuwenge 的回复:
[quote=引用 4 楼 DragonerHuang 的回复:] [quote=引用 3 楼 u011130289 的回复:] [quote=引用 2 楼 DragonerHuang 的回复:] [quote=引用 1 楼 yp136 的回复:] 数学题?有放回还是无放回?
一个抽奖功能,实现它的中奖几率! 什么是回放?什么是无回放?[/quote] ls说的是抽出来放回去,那小学的计算概率题,你这个各个中奖概率=各件总数/全部总数*100%[/quote] 你这个是百分百的中奖率了, 不好意思,我的问题没有问清楚, 毎一个级别的几率都不同, 如:1级的几率是 10%; 2级的几率是 20%; .... 当然不是有规律的几率,这个几率是由我们自己来定写的[/quote] 有不中奖的么?[/quote] 当然是有不中奖的
  • 打赏
  • 举报
回复
Random rd = new Random();
                Dictionary<int, int> dic = new Dictionary<int, int>();
                for (int i = 1; i <= 5; i++)
                {
                    dic.Add(i, i * 10);
                }
                int sum = dic.Values.Sum(i => i);
                if (sum == 0)
                {
                    Console.WriteLine("奖品抽完了");
                }
                int random = rd.Next(sum);
                int num = dic.Where(d => d.Value < random).First().Key;
                dic[num] -= 1;
                Console.WriteLine(num + "等奖");
卧_槽 2014-01-20
  • 打赏
  • 举报
回复
引用 4 楼 DragonerHuang 的回复:
[quote=引用 3 楼 u011130289 的回复:] [quote=引用 2 楼 DragonerHuang 的回复:] [quote=引用 1 楼 yp136 的回复:] 数学题?有放回还是无放回?
一个抽奖功能,实现它的中奖几率! 什么是回放?什么是无回放?[/quote] ls说的是抽出来放回去,那小学的计算概率题,你这个各个中奖概率=各件总数/全部总数*100%[/quote] 你这个是百分百的中奖率了, 不好意思,我的问题没有问清楚, 毎一个级别的几率都不同, 如:1级的几率是 10%; 2级的几率是 20%; .... 当然不是有规律的几率,这个几率是由我们自己来定写的[/quote] 有不中奖的么?
DragonerHuang 2014-01-20
  • 打赏
  • 举报
回复
引用 3 楼 u011130289 的回复:
[quote=引用 2 楼 DragonerHuang 的回复:] [quote=引用 1 楼 yp136 的回复:] 数学题?有放回还是无放回?
一个抽奖功能,实现它的中奖几率! 什么是回放?什么是无回放?[/quote] ls说的是抽出来放回去,那小学的计算概率题,你这个各个中奖概率=各件总数/全部总数*100%[/quote] 你这个是百分百的中奖率了, 不好意思,我的问题没有问清楚, 毎一个级别的几率都不同, 如:1级的几率是 10%; 2级的几率是 20%; .... 当然不是有规律的几率,这个几率是由我们自己来定写的
Regan-lin 2014-01-20
  • 打赏
  • 举报
回复
引用 2 楼 DragonerHuang 的回复:
[quote=引用 1 楼 yp136 的回复:] 数学题?有放回还是无放回?
一个抽奖功能,实现它的中奖几率! 什么是回放?什么是无回放?[/quote] ls说的是抽出来放回去,那小学的计算概率题,你这个各个中奖概率=各件总数/全部总数*100%
DragonerHuang 2014-01-20
  • 打赏
  • 举报
回复
引用 1 楼 yp136 的回复:
数学题?有放回还是无放回?
一个抽奖功能,实现它的中奖几率! 什么是回放?什么是无回放?
yp136 2014-01-20
  • 打赏
  • 举报
回复
数学题?有放回还是无放回?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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