从 java 中的加权选项中选择随机值

Choosing random value from weighted options in java

当用户点击时,必须从一组输出中随机选择一个输出。一个值的机会需要高于另一个值。例如,您单击一个按钮,您将收到 BronzeSilverGoldPlatinum。显然,如果您随机点击,您应该获得青铜多于白银、多于黄金、多于白金。例如,它可能看起来像这样:

printRandom("Bronze", 30, "Silver", 20, "Gold", 10, "Platinum", 5, "You didn't get anything.");

最后的结果是你不幸得到 none。我一直难以让一个选项比另一个选项更常见,而不是首先选择一个值。谢谢。

如果您想保持简单,可以执行以下操作:

int random = Math.random();

if (random < 0.05) { // 5/100
  return "Platinum";
} else if (random < 0.1) { // 10/100
  return "Gold";
} else if (random < 0.2) { // 20/100
  return "Silver";
} else if (random < 0.3) { // 30/100
  return "Bronze";
} else {
  return "You didn't get anything.";
}