Генератор случайных чисел, смещенный к числам в середине диапазона, Java, libGDX
Я разрабатываю игру в libGDX, в которой выпадают камни разных размеров, чтобы пользователь мог увернуться.
Мой вопрос: Как я могу создать метод, который принимает низкое и высокое значение типа int и возвращает случайное число. Однако я хочу, чтобы это случайное число было смещено к середине диапазона (аналогично нормальному распределению).
Я хотел бы, чтобы метод выглядел примерно так: public int randBiasInt(int low, int high) { }
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;
}
Не самая красивая, я знаю. Но это должно быть приемлемо для того, что вы хотите...