Как масштабировать псевдослучайные числа до определенного диапазона?

Как бы я масштабировал случайные числа, чтобы сказать 1-10 без потери случайности?

Я знаю, просто использовать% 10 не очень хорошая идея.

И, кроме того, мне нужно начальное значение, чтобы я мог проверить на определенных числах,

но я не понял, какое значение должно иметь это семя, и я не знаю, как оно влияет на последовательность.

Есть ли разница, высокая или низкая?

заранее спасибо.

2 ответа

Решение
import java.util.Random;

Random random = new Random( yourSeed );
int randomInt = random.nextInt(10) + 1 ;

seed не имеет другой цели, кроме как дать PRNG отправная точка. Это чисто произвольно и не повлияет на распределение случайных чисел.

nextGaussian() отличается тем, что возвращает числа с плавающей запятой, распределенные по кривой колокола.

Обычно при попытке получить случайное значение вы будете использовать что-то вроде этого:

public int getRandom( int min, int max )
{
    return (int) Math.round( Math.random() % (max - min) + min );
}

Или, как я только что вспомнил из ответа Stavr00, используйте одну из встроенных функций из java.util.Random

Другие вопросы по тегам