/ / Como dimensionar números pseudo-aleatórios para um intervalo específico? - java, aleatório, semente aleatória

Como escalar números pseudo-aleatórios para um intervalo específico? - java, random, random-seed

Como escalar números aleatórios para dizer 1-10 sem perder a aleatoriedade?

Eu sei, apenas usar% 10 não é uma boa ideia.

Além disso, preciso de um valor inicial, para poder testar em números determinsíticos,

mas não entendi que valor essa semente deveria ter e eu como isso influencia a sequência.

Existe alguma diferença se é alto ou baixo?

desde já, obrigado.

Respostas:

3 para resposta № 1
import java.util.Random;

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

o seed não tem outro propósito senão dar ao PRNG um ponto de partida. É puramente arbitrário e não influenciará a distribuição dos números aleatórios.

o nextGaussian() é diferente, pois retorna números de ponto flutuante distribuídos em torno de uma curva de sino.


0 para resposta № 2

normalmente, ao tentar obter um valor aleatório, você usará algo como isto:

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

Ou, como acabei de lembrar da resposta do Stavr00, use uma das funções internas do java.util.Random