如何将伪随机数缩放到特定范围?
How to scale pseudo random numbers to a specific range?
我如何将随机数缩放为 1-10
没有失去随机性?
我知道,只使用 %10 不是一个好主意。
另外,我需要一个种子值,这样我就可以在
确定性数字,
但我一直不明白这颗种子应该有什么价值
以及它如何影响顺序。
高低有区别吗?
提前致谢。
通常在尝试获取随机值时,您会使用这样的东西:
public int getRandom( int min, int max )
{
return (int) Math.round( Math.random() % (max - min) + min );
}
或者,正如我刚刚从 Stavr00 的回答中记起的那样,使用 java.util.Random
中的内置函数之一
import java.util.Random;
Random random = new Random( yourSeed );
int randomInt = random.nextInt(10) + 1 ;
seed
没有其他目的,只是给 PRNG
一个起点。纯属随意,不会影响随机数的分布。
nextGaussian()
的不同之处在于它returns浮点数分布在钟形曲线上。
我如何将随机数缩放为 1-10 没有失去随机性?
我知道,只使用 %10 不是一个好主意。
另外,我需要一个种子值,这样我就可以在 确定性数字,
但我一直不明白这颗种子应该有什么价值 以及它如何影响顺序。
高低有区别吗?
提前致谢。
通常在尝试获取随机值时,您会使用这样的东西:
public int getRandom( int min, int max )
{
return (int) Math.round( Math.random() % (max - min) + min );
}
或者,正如我刚刚从 Stavr00 的回答中记起的那样,使用 java.util.Random
import java.util.Random;
Random random = new Random( yourSeed );
int randomInt = random.nextInt(10) + 1 ;
seed
没有其他目的,只是给 PRNG
一个起点。纯属随意,不会影响随机数的分布。
nextGaussian()
的不同之处在于它returns浮点数分布在钟形曲线上。