java.util.Random挖掘得有点深

java.util.Random挖掘得有点深,java,random,formula,probability,Java,Random,Formula,Probability,我在阅读Java书籍中的数据结构和算法时,遇到了以下问题,我希望获得帮助: 假设给您一个数组A,其中包含100个整数,这些整数是使用方法r.nextInt(10)生成的,其中r是java.util.Random类型的对象。设x表示A中整数的乘积。有一个数x的概率至少等于0.99。那个数字是多少?描述x等于那个数字的概率的公式是什么 我认为x等于零;因为很可能会生成0。然而,这只是一个猜测。我找不到公式。没有指定随机化方程,我无法在这里或使用谷歌搜索后找到任何相关主题 我想得到一些关于概率公式的帮

我在阅读Java书籍中的数据结构和算法时,遇到了以下问题,我希望获得帮助:

假设给您一个数组A,其中包含100个整数,这些整数是使用方法r.nextInt(10)生成的,其中r是java.util.Random类型的对象。设x表示A中整数的乘积。有一个数x的概率至少等于0.99。那个数字是多少?描述x等于那个数字的概率的公式是什么

我认为
x
等于零;因为很可能会生成0。然而,这只是一个猜测。我找不到公式。没有指定随机化方程,我无法在这里或使用谷歌搜索后找到任何相关主题

我想得到一些关于概率公式的帮助。提前谢谢。

正如您已经预料到的,它将是0

r.nextInt(10)
将返回从0到9的数字

任何0*1-9的乘积都是0,因此对于100个随机数,此函数不返回0的可能性非常低。

正如您已经预料到的,它将是0

r.nextInt(10)
将返回从0到9的数字


任何0*1-9的乘积都将是0,因此对于100个随机数,此函数不返回0的可能性非常低。

数组元素的可能值为0。。9,每个概率为1/10。如果其中一个元素为0,则乘积也将为0。所以我们计算至少一个元素为0的概率

事实证明,这与所有元素都大于零相反。一个元素大于0的概率为9/10,因此所有元素大于0的概率为(9/10)^100


因此,至少一个元素为0的概率为1-(9/10)^100,约为0.9999734。

数组元素的可能值为0。。9,每个概率为1/10。如果其中一个元素为0,则乘积也将为0。所以我们计算至少一个元素为0的概率

事实证明,这与所有元素都大于零相反。一个元素大于0的概率为9/10,因此所有元素大于0的概率为(9/10)^100


因此,至少一个元素为0的概率为1-(9/10)^100,约为0.9999734。

关于
nextInt
:javadoc规定:

在0(含0)和 指定值(独占)

“均匀分布”是指每个结果的可能性相等的分布

因此,特定结果的概率为“1/[可能结果的数量]”(因此它们加起来都是1)

关于阵列: 填充阵列可视为观察100个统计上独立的事件


你应该仔细阅读,当组合多个独立事件时,数学是如何工作的。

关于
nextInt
:javadoc规定:

在0(含0)和 指定值(独占)

“均匀分布”是指每个结果的可能性相等的分布

因此,特定结果的概率为“1/[可能结果的数量]”(因此它们加起来都是1)

关于阵列: 填充阵列可视为观察100个统计上独立的事件


你应该仔细阅读,当组合多个独立事件时,数学是如何工作的。

这个问题不是关于
java.util.Random
。这是一个关于概率的一般数学问题——任何统一的随机发生器都会得到相同的答案。因为它是乘积,而不是我错误理解的总和,是的,
x
在大多数情况下应该是0。但在这100个数字中,没有一个0出现的可能性很小,因此概率为0.99。我不确定这个概率的确切公式,但我相信它是沿着1(0的概率,也就是1/10,除以它发生的概率,也就是100)的路线。这个问题不是关于
java.util.Random
。这是一个关于概率的一般数学问题——任何统一的随机发生器都会得到相同的答案。因为它是乘积,而不是我错误理解的总和,是的,
x
在大多数情况下应该是0。但在这100个数字中,没有一个0出现的可能性很小,因此概率为0.99。我不确定这个概率的确切公式,但我相信它是沿着1-(0的概率,等于1/10,除以它发生的概率,等于100)。