在我的Android应用程序中,我想使用方法Random.next(int)生成0到100000之间的整数。我想知道这种方法的概率类型。该范围内的每个值都是相同的吗?
答案 0 :(得分:3)
假设您想绘制100000,它将广泛地满足[0,100000]范围内均匀分布的统计特性。
即,
生成任何特定数字的概率是相等的,与先前绘制的数字无关。
随机数样本的均值平均值为100000/2
样本的方差将收敛于均匀分布的方差。
但它不完美,或加密安全。特别是你可以观察到自相关效应。根据您的具体要求,您可能需要考虑替代方案。
答案 1 :(得分:1)
我假设您指的是nextInt(int)
而不是next(int)
(protected
,而不是公共方法)。
它是均匀的(离散的,伪随机的)分布。
返回0之间的伪随机,均匀分布的 int值 (包括)和指定值(不包括)
答案 2 :(得分:0)
它将生成一个伪随机数。每个数字具有相同的生成概率。我试着拨打Random.next(2)
100次,得到50个1和50个。我想你应该已经明白了。它的分布均匀。
如果你很好奇,这是源代码:
protected synchronized int next(int bits) {
seed = (seed * multiplier + 0xbL) & ((1L << 48) - 1);
return (int) (seed >>> (48 - bits));
}
答案 3 :(得分:0)