文章目錄
  1. 1. 独立掉落
  2. 2. 圆桌掉落
  3. 3. 应用

说起来掉落很简单,无非就是随机,随机到了就掉落,随机不到就不掉,但是实际应用中一些细节还是需要注意的,这里简单记录下。
掉落一般分为2种,一种是独立概率掉落,一种是圆桌概率掉落,下面分别介绍。

独立掉落

独立掉落即是多个物品分别独立随机,有可能同时掉落多个物品,也有可能一个物品也不掉落。
例如,物品A掉落概率10%,物品B掉落概率30%,物品C掉落概率50%,这时候要独立生成3个1-100的随机数,如果第一个随机数在1-10范围内则掉落A,如果第二个随机数在1-30范围内则掉落B,如果第三个随机数在1-50范围内则掉落C。

圆桌掉落

圆桌掉落要求多个物品中按照一定概率只能掉落其中的一种,而且必定要掉落一种。
例如,10%概率掉落物品A,30%概率掉落物品B,余下一律掉落物品C。
有些人可能会像上面一样,先对物品A进行概率随机,如果成功则直接掉落A,不成功再对B进行随机,成功直接掉落B,不成功则掉落C,结束。咋一看没什么问题,但是细想一下会发现这样的掉落方式无形中改变了原来的掉落概率,物品A的掉落概率是10%没错,但是物品B的掉落概率变成了(1-10%)*30%,因为A不成功才会掉落B,而C的掉落概率则变成了1-10%-(1-10%)*30%,显然这种结果不是所期望的。
所以要,N种物品按照概率组成一个圆桌,然后产生一个随机数,落到哪块就掉哪个物品。
这个例子中,产生一个随机数,如果数值在1-10范围内则掉落A,在11-30范围内则掉落B,在31-100范围内则掉落C,这样的掉落概率就和实际中相同。
在实际应用中,也不必去按照100来进行数值计算,好比可以规定A掉落概率100,B掉落概率300,C掉落概率1000,则A的掉落概率是100/(100+300+1000),B的掉落概率是300/(100+300+1000),剩下的是C,然后在[1-(100+300+1000)]中随机出一个数,看看落到哪个范围就好了。

应用

在实际应用中我习惯于把这两种掉落结合起来使用,大包+小包的掉落方式
1.小包
小包里面包含有N个掉落物品,完全按照圆桌概率掉落,也就是说必定而且只会掉落其中的一种物品。
2.大包
大包里面包含N个小包,完全按照独立概率掉落,即可能掉落多个小包,也可能不掉。

在运用时大包小包结合使用,如果想完全独立掉落时可以在对应的小包里只配置一种物品,这样该物品就是100%掉落了,如果想完全圆桌概率掉落则可以把大包里的掉落概率设置为100%,小包里面配置多种物品,这样就完全按小包来掉落了。好处更在于你也可以独立随机掉落几个小包,最后小包按照圆桌概率来掉落物品,基本上满足了大部分的需求。

文章目錄
  1. 1. 独立掉落
  2. 2. 圆桌掉落
  3. 3. 应用