高分悬赏 中奖概率控制 方案

swt570481062 2011-03-30 09:36:31
需要出一个抽奖的方案, 中奖的概率要有控制。说白了也就是 抽多少次以后才能有中奖几率出现。
举个例子 花2块钱抽ipad奖品 。 不可能第一次抽就中奖了。 需要保证 稳赚不赔,但是又要有抽中的概率存在。
请大家,出出主意。 谢谢!
...全文
143 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
icerainfc522 2011-03-30
  • 打赏
  • 举报
回复
简单 先通过市场调查 确定一个中奖比例 用平均分布随机数产生中奖号码,注意的是,每个中奖号码出来的时候先看如果出奖会不会跌破自己预设的盈利水平,如果没有就出奖;如果跌破了这个号码就作废,继续产生随机数
aliezeng77 2011-03-30
  • 打赏
  • 举报
回复
如果2元抽取一次,奖品100元,可这样处理

int failedTimes;

int GetPrize(int M)
{
if(Random(50)==1) //中奖概率为1/50
{
if(failedTimes>=Random(M)) //随机控制是否中奖,连续两次中奖的概率为0,隔N(N<M)次中的概率为N/20M,超过M次不中之后的中奖概率为1/20
{
failedTimes=0;
return 1;
}
}
failedTimes++;
return 0;
}
aliezeng77 2011-03-30
  • 打赏
  • 举报
回复
上面写错了

int failedTimes;

int GetPrize(int M)
{
if(Random(20)==1) //中奖概率为1/20
{
if(failedTimes>=Random(M)) //随机控制是否中奖,连续两次中奖的概率为0,隔N(N<20)次中的概率为N/20M,超过M次不中之后的中奖概率为1/20
{
failedTimes=0;
return 1;
}
}
failedTimes++;
return 0;
}
aliezeng77 2011-03-30
  • 打赏
  • 举报
回复
int failedTimes;

int GetPrize()
{
if(Random(中奖))
{
if(failedTimes>=Random(20))
{
failedTimes=0;
return 1;
}
else
{
failedTimes++;
return 0;
}
}
}
hch126163 2011-03-30
  • 打赏
  • 举报
回复
举例,如果2元抽取一次,奖品100元。需要抽取50次才不赔!

很合理的是设置一个中奖概率,比如 1/200
好比在 200个号中随机选择一个,只有1个号能中!

这样不能保证第一次不能被抽中!但是这是很好的方案


如果用程序来控制,抽奖人数小于200时,100% 不能抽中。
抽奖人数到200时,再设置可以抽中。这样抽中后把抽奖人数设值为0

这样会造成,每次中奖中奖的间隔都会超过200!!

用户看到有人中奖后,哪个傻子还来啊!

都想等到有200多个人抽,还没出奖的时候来
freewill09 2011-03-30
  • 打赏
  • 举报
回复
写程序不让中就是了,记录下抽奖人的id和抽奖次数
Baesky 2011-03-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 swt570481062 的回复:]
需要出一个抽奖的方案, 中奖的概率要有控制。说白了也就是 抽多少次以后才能有中奖几率出现。
举个例子 花2块钱抽ipad奖品 。 不可能第一次抽就中奖了。 需要保证 稳赚不赔,但是又要有抽中的概率存在。
请大家,出出主意。 谢谢!
[/Quote]
概率问题你控制不了,无法杜绝什么不可能。唯一能做的就是降低概率而已。
简单来说,10000张彩票只有一个能中奖,就把概率降到万分之一,但是你不可能阻止别人第一次就抽到那张中奖的彩票。除非你作弊。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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