我正在创建一个彩票类型的游戏,玩家可以单击一个按钮,然后他们可以获得随机数量的硬币(高数量是稀有的,低数量是常见的。)
到目前为止我能想到的只是一个数组,有没有更有效的方法来做到这一点?
private static final int[] REWARDS = {10, 25, 50, 100, 250, 500, 1000};
最佳答案
您可能需要一个加权概率模型。例如
Prize : Weight
---------------
$10 : 50
$25 : 20
$50 : 10
$100 : 5
$250 : 3
$500 : 2
$1000 : 1
此处的总重量可以算作 91。因此,要颁发奖品,您可以从 1-91 中随机选择一个数字。然后找出它在您的权重范围内的位置(例如,从您的数字中减去每一层的权重,直到其变为负数)。
但是这里要小心相差一的错误并彻底测试。
关于java - 创建某种彩票游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10023558/