我正在 libGDX 中设计一款游戏,它会掉落不同大小的石头供用户躲避。
我的问题:我怎样才能创建一个接受低和高 int 值的方法,并返回一个随机数。但是,我希望这个随机数偏向范围的中间(类似于正态分布)。
我希望该方法看起来像这样: public int randBiasInt(int low, int high) { }
我正在 libGDX 中设计一款游戏,它会掉落不同大小的石头供用户躲避。
我的问题:我怎样才能创建一个接受低和高 int 值的方法,并返回一个随机数。但是,我希望这个随机数偏向范围的中间(类似于正态分布)。
我希望该方法看起来像这样: public int randBiasInt(int low, int high) { }
类似这样的东西应该可以工作......
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;
}
不是最漂亮的,我知道。但它应该是你想要的可以接受的......