求助一个抽奖算法的问题、

Lukerr 发布于 2014/03/12 18:18
阅读 311
收藏 0

奖品A的剩余量为Sa,奖品B的剩余量为Sb,奖品C的剩余量为Sc

则获得A奖品的机率为Ra = Sa / ( Sa + Sb + Sc)

则获得B奖品的机率为Rb = Sb / ( Sa + Sb + Sc)

则获得C奖品的机率为Rb = Sc / ( Sa + Sb + Sc)

求得随机数R1  (0 < R1 < 1)

若:R1 <= Ra 则 选择A奖品

若:R1 > Ra && R1 <= Ra + Rb 则 选择B奖品

若:R1 > Ra + Rb && R1 <= Ra + Rb + Rc 则 选择C奖品

      若:R1 > Ra + Rb + Rc 则 选择D奖品

。。。 。。。


求助这个算法怎么写!!!

加载中
0
redhat_ops
redhat_ops
你都把这个问题写得那么直白了  还不会写?!  你是伸手党来拿代码的吧
Lukerr
Lukerr
会写我就不在这说了。没思路。
0
nullptr
nullptr
我觉得没啥算法吧。。。
0
万里谁能驯
万里谁能驯
题目说得很明白了。如果我没理解错的话,先读入Sa,Sb,Sc,再算出Ra,Rb,Rc,然后用随机函数求得R1,接下来是3个if。Ra+Rb+Rc=1,0<R1<1,所以不用去管D。
0
修改登录密码
修改登录密码

这里哪有什么算法   唯一一个可能需要实现的就是随机数的生成算法.

要是要求不高 用rand()足以

0
月光逍遥
就是把汉语写成程序语言就行了,一句句翻译不就得了
0
Timco
Timco
看到最后一句      若:R1 > Ra + Rb + Rc 则 选择D奖品,瞬间乐了⊙▽⊙
0
edi
edi

“则获得x奖品的机率为” 替换成float

“若:”替换成if( 

“则”替换成){}。。。。。。


返回顶部
顶部