在一对夫妇最后一次申请的我本来是要实现概率这是通常一些项目中给出计算概率说:与给定的范围
奖励在一定程度上完成项目的用户X
项目X
可能的下面的一个:
jug => probability 25
glass => probability 50
plate => probability 20
dish => probability 5
我通过创建一个数组并填充所述特定项目的时间的概率是多少解决这一;对于上面的情况,我会有一个数组与25 elements of jug, 50 glasses and so on.
。我最后shuffle
{PHP}数组,并从中选择一个随机元素。
在另一个应用程序中,这些值总计超过了100,所以我首先从这个总数中计算出他们的尊重百分比,然后使用上面的逻辑。
只是想知道这是从这种结构计算概率的正确方法吗?
我在这里经历了几个关于特种部队的问题,但没有人帮助我解决问题。
如果有更合适的方式来做到这一点,请让我知道
感谢
太棒了!希望我也是一个数学家伙:S,但是,我的数据不会适合这种情况,恐怕它有50,10,5.5,1和0.5的值。在这个GCD中是0.5。我只是看着[this](http://stackoverflow.com/questions/8280514/returning-a-random-value-from-array-with-probability-proportional-to-its-value?rq=1)。我试图理解答案,似乎很安静,但现在无法吸收它。 – Junaid
如果你的值低于1,你需要把它们全部乘以2,所以有1(2 * 0,5)作为GCD,可惜。但在问题的例子中,GCD是5,所以'jug'是5,'glass'是10,'plate'是4,'dish'是1. – Voitcus
我认为@Floin的解决方案更好。 – Voitcus