先设定一个数量,假定10000张,比如存在List<int> list里,初始值全部为0。然后从头开始,按概率和数量将奖品写入,数字代表相应的奖。按上面的也就是 list[0]=1;//一等奖一个10000*0.01% list[1]=2; list[2]=2; list[10]=2;//2等奖按0.1%算应该有10个(这个我不清楚实际是怎样的,概率也忘差不多了,你要自己改一下) list[11]=3 list[12]=3; list[60]=3;//3等按0.5%计算为50个 list[61]=0; list[9999]=0; //剩下的全是0,表示没奖 下一步就是将这个List随机排列,可以考虑从第0个数开始,将第i个数字与0-list.Count之间的进行交换,最终就得到一个乱序的刮刮卡。 抽奖的时候就简单了,直接从rand.next(list.Count)中取一个随机数,比如是r,那list[r]的值即为中奖的级别,之后用list.RemoveAt(r)把这张卡删掉。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有