求一个抽奖算法......

问题描述

50%不中奖25%优惠卷(优惠有好几种这个可以直接随机的)25%红包其中红包在25%的的比例,不是整个比例1、90到100的红包6万分之一2、80到89.99的红包5万分之一3、50到79.99的红包4万分之一4、30到49.99的红包3万分之一5、20到29.99的红包2万分之一6、10到19.99的红包1万分之一7、5到9.99的红包五千分之一8、3到4.99的红包两千分之一9、2到2.99到红包五百分之一10、1到1.99的红包一百分之一11、其余都是0.99以下求大神.....

解决方案

解决方案二:
Randomran=newRandom();intRandKey=ran.Next(0,100);生成一个随机数,0-49不中奖,50-74优惠劵。。。。如果是红包,再生成一个随机数,得到具体多少钱
解决方案三:
引用1楼u013421223的回复:

Randomran=newRandom();intRandKey=ran.Next(0,100);生成一个随机数,0-49不中奖,50-74优惠劵。。。。如果是红包,再生成一个随机数,得到具体多少钱

这个是有概率的啊不能直接用随机数
解决方案四:
0-99里面随机生成一个数,0-49不中奖,不是50%吗?生成随机数,得到的每一个数概率是一样的
解决方案五:
引用2楼z050301402的回复:

这个是有概率的啊不能直接用随机数

按比例事先生成好所有奖项对应的号码的号码池,生成的时候比率就固定好了,抽的时候只是抽这些号码而已,无论如何都不会超过该比例
解决方案六:
6万----一百全部累加,然后从0到这个数做随机就行啦...2次随机,第一次看有没有中红包,如果中了再进行第二次随机我感觉难点是...如何控制总金额(到了就抽不到大奖)...概率这个太不靠谱了
解决方案七:
帮顶下~~~~
解决方案八:

解决方案九:
引用1楼u013421223的回复:

Randomran=newRandom();intRandKey=ran.Next(0,100);生成一个随机数,0-49不中奖,50-74优惠劵。。。。如果是红包,再生成一个随机数,得到具体多少钱

这个比较简单。如果怕重复可以再加个盘点。
解决方案十:
参见一个描述:一段经典的概率算法,proArr是一个预先设置的数组,假设数组为:array(100,200,300,400),开始是从1,1000这个概率范围内筛选第一个数是否在他的出现概率范围之内,如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间,在本例当中就是减去100,也就是说第二个数是在1,900这个范围内筛选的。这样筛选到最终,总会有一个数满足要求。就相当于去一个箱子里摸东西,第一个不是,第二个不是,第三个还不是,那最后一个一定是。这个算法简单,而且效率非常高,关键是这个算法已在我们以前的项目中有应用,尤其是大数据量的项目中效率非常棒。
解决方案十一:
引用2楼z050301402的回复:

Quote: 引用1楼u013421223的回复:
Randomran=newRandom();intRandKey=ran.Next(0,100);生成一个随机数,0-49不中奖,50-74优惠劵。。。。如果是红包,再生成一个随机数,得到具体多少钱

这个是有概率的啊不能直接用随机数

数学没学好不怪你
解决方案十二:
高中的时候就算过,抽奖顺序不影响抽奖概率所以你准备6w个抽奖结果,3w个结果无效,1个结果随机90-100.。。以此类推,每次抽奖就从剩余的抽奖结果取一个这个抽奖结果就相当于彩票,被抽走就作废
解决方案十三:
写过抽奖算法!都忘了让我找找
解决方案十四:
引用9楼xuzuning的回复:

参见一个描述:一段经典的概率算法,proArr是一个预先设置的数组,假设数组为:array(100,200,300,400),开始是从1,1000这个概率范围内筛选第一个数是否在他的出现概率范围之内,如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间,在本例当中就是减去100,也就是说第二个数是在1,900这个范围内筛选的。这样筛选到最终,总会有一个数满足要求。就相当于去一个箱子里摸东西,第一个不是,第二个不是,第三个还不是,那最后一个一定是。这个算法简单,而且效率非常高,关键是这个算法已在我们以前的项目中有应用,尤其是大数据量的项目中效率非常棒。

原文的描述还有好多,光看这句话实在看不懂啊
解决方案十五:
表示关注一下。。。。
解决方案:
假设90到100的红包6万分之一的红包是1个,那么红包总数是60000:1、90到100的红包6万分之一:12、80到89.99的红包5万分之一:1.23、50到79.99的红包4万分之一:1.54、30到49.99的红包3万分之一:25、20到29.99的红包2万分之一:36、10到19.99的红包1万分之一:67、5到9.99的红包五千分之一:128、3到4.99的红包两千分之一:309、2到2.99到红包五百分之一:12010、1到1.99的红包一百分之一:60011、其余都是0.99以下:....取整放大倍数,由最小公倍数,可以得到红包总数为600000;红包的总数和优惠卷的总数相等。红包数+优惠卷数=不中奖数。那么你只要random(0,红包数+优惠卷数+不中奖数),用得到的随机数去取第N+1个,每次抽一次奖之后,红包数+优惠卷数+不中奖数-1;抽完重置即可。另外奖项的多少到多少是什么奖项的,自己去设置。
解决方案:
这种高中二年级数学题也好意思拿来问?

时间: 2024-11-03 03:28:53

求一个抽奖算法......的相关文章

求一个抽奖算法,最好java实现

问题描述 求一个抽奖算法,最好java实现 需求如下: 总共分四等奖, 1等奖名额2个,中奖概率2/10000 2等奖名额10个,中奖概率5/1000 3等奖名额100个,中奖概率10/100 4等奖名额880个,中奖概率25/100 求一个算法,算出用户单次抽奖中奖等级(1,2,3,3等奖或不中奖). 最好java实现. 解决方案 说个最简单的,用java的随机函数.用Random类生成随机数,也可以用Math类中的random生成 区别看这里:http://liukai.iteye.com/

求一个面试算法题答案。

问题描述 求一个面试算法题答案. 已知函数f()以相同的概率返回0或者1,求一个函数g()以相同的概率返回0-7之间的任意一个数字. 解决方案 其实这个题不难,可以考虑用2进制的方式来做.g(){return 4*f()+2*f()+f();} 希望能帮到你. 解决方案二: #includeint g(){srand(time(NULL));ret = rand()%8;return ret;}

求一个程序算法,关于找出符合条件的操作符排列?

问题描述 求一个程序算法,关于找出符合条件的操作符排列? 给一个初始操作数a,然后对这个操作数执行n次加减乘余的计算操作[每次操作a自增1,而且不考虑运算符优先级,谁在前面先算谁],最后会得到一个结果数x,问如何求出这些操作符?? 重要:程序不能使用递归,最好只用一个主函数!! 比如,给你一个初始数3,执行7次加减乘余操作,最后得到结果147,那么有一种操作符序列满足条件:* + + - * + + 既:3*4+5+6-7*8+9+10=147 解决方案 亲测合格,请验证: #include #

求一个合理算法,比较两个数据量较大的集合

问题描述 求一个合理算法,比较两个数据量较大的集合 现有listA,数据库B,A中的数据如果与B中不同(包含不存在的情况), 则将不同或不存在的数据记录到B中, 现在问题是,listA和数据库B都有大量数据, 求一个合理的比较二者数据的算法 解决方案 先排序再比较啊. 比较的时候: 如果 A[i] == B[j],继续下一个比较 A[i+1] 和 B[j+1]: 如果 A[i]<B[j].或者B没有可以比较的数,就是不存在: 如果 A[i]>B[j],继续下一个比较 A[i] 和 B[j+1]

js算法-求一个JS算法,30s没执行成功,则1分钟后继续执行,。。。直到执行成功

问题描述 求一个JS算法,30s没执行成功,则1分钟后继续执行,...直到执行成功 执行一件事,如果没成功,则每过一段时间后自动执行,直到成功 解决方案 <script language=javascript> var int=self.setInterval("dothings()",1000)//1秒1次 function dothings() { if(true){//如果执行成功 clearInterval(int);//关闭定时执行 } } </script

100分求一个随机数生成算法

问题描述 500000元分给1000000个人,每个人分0.18到88元,正好分完.请问如何使用算法实现? 解决方案 解决方案二:decimalsumMoney=500000m;//总金额intremainPerson=1000000;Dictionary<string,decimal>dicResult=newDictionary<string,decimal>();//存储分配结果voidPenny(){decimalmoney=0m;//每人分到的金额for(inti=0;i

求一个逼近算法java代码怎么写啊

问题描述 题目:发现一种混合金属含Ag为10mg/kg,已知此种混合金属由n(n是随机变量)种标准金属混合而成,标准金属中的Ag含量已知,请计算出组成此混合金属的n种标准金属的含量?没得啥思路,求高手帮忙 解决方案 解决方案二:没怎么看明白.已经Ag含量是10mg/kg,那么n种金属的含量不就是(1kg-10mg)/kg么?解决方案三:lz是想求n种标准金属每一种的含量吧.

算法 数据结构 图论-如何求一个连通图的具有最小权值的生成子图!

问题描述 如何求一个连通图的具有最小权值的生成子图! 如何求一个连通图的具有最小权值的生成子图!算法如何?不通要过穷举,如何进行选边?有没有好算法!

算法 空间坐标-一个空间坐标算法问题,求请教!

问题描述 一个空间坐标算法问题,求请教! 如图,已知矩形长宽,一个正交的十字在矩形内,假设以矩形左下角为坐标原点,根据十字四边的长度Dl,Dr,Db,Df,确定十字形中心点的坐标(黑点). 解决方案 看下初中的三角函数,就是数学问题了.