假设我有四种货币,我想随机选择一种:
Bronze, Silver, Gold, Platinum
基于一些“评级”值,我想给每种货币分配一个被选择的概率。假设这个评分值是从0.0到5.0
现在,如果我的评级更高,我想将分布的权重指向白金端,如果我的评级更低,我想将分布的权重指向青铜端。
因此,5.0的评级可能看起来像:
Bronze: 0.0, Silver: 0.10, Gold: 0.30, Platinum: 0.60
同样,0.0的评级可能看起来像:
Bronze: 0.60, Silver: 0.30, Gold: 0.10, Platinum: 0.0
评级为2.5的货币在中间货币之间的分布可能更为均匀。
我真的想不出一个算法来处理这个问题如何基于控制分发的某个值生成100%的分发?有人知道我从哪里开始吗?
最佳答案
一个简单的答案是将4条直线拟合到您拥有的数据上,然后每天调用它。
一种更灵活的方法是用你喜欢的任何方式定义4个非负相对权重函数,如bronze(r)
,silver(r)
,gold(r)
,platinum(r)
。然后定义total(r) = bronze(r) + silver(r) + gold(r)+ platinum(r)
现在青铜的概率是bronze(r)/total(r)
。
这种方法的优点是您可以使用这样的函数:bronze(r) = 4 * 0.3^r
,silver(r) = 2 * 0.7^r
,gold(r) = 1
,platinum(r) = 0.1 * 1.8^r
,r=0
现在最有可能是青铜。最有可能是银。Atr=1
最有可能是黄金而atr=2
最有可能是铂。
你应该尝试各种各样的功能,并在你的游戏中找到最适合玩的结果。