【问题标题】:Random Number Generator Biased To Numbers in the Middle of Range, Java, libGDX随机数生成器偏向范围中间的数字,Java,libGDX
【发布时间】:2015-04-10 02:03:24
【问题描述】:

我正在用 libGDX 设计一款游戏,它会掉落不同大小的石头供用户躲避。

我的问题:如何创建一个方法,它接受一个低和高 int 值,并返回一个随机数。但是,我希望这个随机数偏向范围的中间(类似于正态分布)。

我希望该方法看起来像这样: 公共 int randBiasInt(int low, int high) { }

【问题讨论】:

  • 我投票决定将此问题作为题外话结束,因为纯代码编写请求在 Stack Overflow 上是题外话——我们希望这里的问题与具体相关编程问题——但我们很乐意帮助您自己编写!告诉我们what you've tried,以及您遇到的问题。这也将有助于我们更好地回答您的问题。
  • 我建议查看 docs.oracle.com/javase/7/docs/api/java/util/… 以获取有关如何获得高斯/正态分布的示例,正​​如 Elliot 指出的那样,尝试使用它来实现一些东西。

标签: java random libgdx probability probability-theory


【解决方案1】:

类似的东西应该可以工作......

public int getBiasedInt(int min, int max) {
    int rand = Math.random() * max;
    while (rand < min) {
        rand = Math.random();
    }
    int mid = (max / 2) - (min / 2);
    int halfmid = mid / 2;
    if (rand > mid) {
        rand -= Math.random() * halfmid;
    } else {
        rand += Math.random() * halfmid;
    }
    return rand;
}

不是最漂亮的,我知道。但它应该是你想要的可以接受的......

【讨论】:

  • 谢谢。比我正在做的要好得多。我使用了一个随机浮点生成器,然后使用了一系列分配了概率范围的 if-else 语句。这好多了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-08
  • 2021-03-02
  • 2015-06-02
  • 2010-12-24
相关资源
最近更新 更多