java - 创建某种彩票游戏

标签 java

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

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

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/

相关文章:

java - 如何让 Spring MVC 读取日期格式为 "2019-3-29"的路径参数?

java - 在特定行sql java中插入值

java - JTABLE,当我清除所有行时,如果选择了一行,该行仍然出现在那里

Java 流 : limit doesnt work with Random(). ints().sorted()

java - 修改LabelField的大小(黑莓)

java - @Column(unique = true) 产生警告 o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Warning Code: 0, SQLState: 00000

java - 如何摇动 ViewPager 以向用户显示有更多页面可用?

java - JUnit5:在不重复代码的情况下测试多个类

java - 解析java源文件,然后使用ANTLR4修改原始源

java - 区分 Java 编程语言监视器和等待/通知监视器的术语