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

随机开奖程序,有123等奖,如何控制三个奖项的中奖几率
现在本人要做一个随机开奖的程序,不知如何控制开奖的几率,情况如下:
奖项为:
一等奖:5名(手机)
二等奖:100名(mp3)
三等奖:3000名(10元小礼品)
用户通过活动获得积分,然后开启一个宝箱来进行抽奖,现在不知如何控制三个奖项的中奖几率,要保证一等奖的出现几率最小。
另外因为活动周期是3个月,最好能控制一等奖每月出一个,别一下子全出完了后面活动就没人参加了。

想了一天了,没想出好办法,请高手出手相助。

------解决方案--------------------
你还真以为随机啊?

随机的意思是中奖号码是随机的,但是否中奖,中什么奖,都是程序说了算~~

建几个表把已中奖信息存起来就ok了
------解决方案--------------------
很简单的问题了。
打开数据库符合开将的所有记录,再产生一个由0到最大记录数之间的数字,再让记录指针移到对应记录,就可以是一等将了。如果要防止多次中奖,可以添加一个字段记录他是否已中过奖。二等三等也可用这种方法来实现,不过要跟据人数多少来选择具体的办法,如果人数很多就不适合用这种方法了。可以添加一个字段(如:tem),在打开数据库符合开将的所有记录时,分别为每个记录产生随机数(在线考试系统也是这样做的),放进这个字段,再次打开对应表,对这个字段进行排序,如果中奖的一等奖1个,二等奖两个,三等奖三个,那就是 select top 6 from 表 order by tem,再以这种打开方式的第一个为一等奖,第二个第三个为二等奖,其它为三等。

这只是处理的方法,里面大多要用到循环。其实是很简单的。
------解决方案--------------------
固定日期段~随机生成一天~随机抽一号码~中了就写个标识~下次抽的时候就不找他