我正在创建一个彩票类型的游戏,玩家可以点击一个按钮,然后他们可以随机获得一定数量的硬币(大量的金币是罕见的,少量是常见的。)
到目前为止,我能想到的只是一个数组,有没有更有效的方法呢?
private static final int[] REWARDS = {10, 25, 50, 100, 250, 500, 1000};
答案 0 :(得分:1)
您可能需要加权概率模型。 E.g。
Prize : Weight
---------------
$10 : 50
$25 : 20
$50 : 10
$100 : 5
$250 : 3
$500 : 2
$1000 : 1
此处的总重量可以计为91.因此,要奖励,您可以从1-91中选择一个随机数。然后找出它在您的加权范围内的位置(例如,从您的数字中减去每个等级的权重,直到它变为负数)。
但是请注意这个错误并彻底测试。