很简单的一个要求:
比如有6物品,客户要求要达到30%或者40%的中奖率,这个是可以让客户自定义的,应该怎么做?
这6个物品对应在数据库中分别有六个id,我把这6个物品在程序中导入到一个strList: TStrings;里面
然后用strlist.count来随机抽取,但是这个是每次抽取都要中奖,达不到客户要求的30%或者40%自定义的
中奖率,就是有70%或者60%的几率是抽不中的,用timer控件来自动控制停止
比如有6物品,客户要求要达到30%或者40%的中奖率,这个是可以让客户自定义的,应该怎么做?
这6个物品对应在数据库中分别有六个id,我把这6个物品在程序中导入到一个strList: TStrings;里面
然后用strlist.count来随机抽取,但是这个是每次抽取都要中奖,达不到客户要求的30%或者40%自定义的
中奖率,就是有70%或者60%的几率是抽不中的,用timer控件来自动控制停止
30 个1 70 个0 ,组合成100个数字的tstringlist ,然后随机取这里面的一个数字,取到1的几率就是30%了
物品表:
再取到1的基础上,去 物品列表中随机取一个中奖物品,就是6个中随便取一个
你在TStringList中再加入14个无效的ID,然后用随机数
Random(20)作为索引值,基本就能保证30%
同样,40%那就自己算算TStringList中一共需要多少个无效ID就是了
Random(10)<3就是30%了,Random(10)<4就是40%
if Random(10) < 3 then
begin
//30%中奖,给奖品就试了
end
else
begin
//70%没中奖的,抱歉了,呵呵
end;
但是我要用timer控件来控制时间啊,比如客户设定轮盘转动5秒或者7秒等,该咋个做哦?
begin
//中奖了 随即从StringList里取一个吧
end
else
begin
//没中奖 下次继续努力
end;