0

我正在创建一个彩票类型的游戏,玩家可以点击一个按钮,然后他们可以获得随机数量的硬币(大量稀有而少量常见。)

到目前为止,我能想到的只是一个数组,有没有更有效的方法来做到这一点?

private static final int[] REWARDS = {10, 25, 50, 100, 250, 500, 1000};
4

1 回答 1

1

您可能需要加权概率模型。例如

Prize : Weight
---------------    
$10 : 50
$25 : 20
$50 : 10
$100 : 5
$250 : 3
$500 : 2
$1000 : 1

这里的总重量可以算作 91。所以要颁发奖品,你从 1-91 中选择一个随机数。然后找到它在您的加权范围内的位置(例如,从您的数字中减去每一层的权重,直到它变为负数)。

但是在这里要小心一点一点的错误并彻底测试。

于 2012-04-05T06:33:12.060 回答