我正在阅读Java书籍中的数据结构和算法,我遇到了以下问题,我希望得到帮助:
假设给你一个数组A,它包含100个使用r.nextInt(10)方法生成的整数,其中r是java.util.Random类型的对象。设x表示A中整数的乘积。有一个数字,x等于概率至少为0.99。那个数字是什么,什么是描述x等于那个数的概率的公式?
我认为x
等于零;因为大多数可能会生成0。但是,这只是猜测。我无法找到配方。 java documentation未指定随机化等式,我无法在此处或使用Google搜索后找到任何相关主题。
我想获得一些概率公式的帮助。提前谢谢。
答案 0 :(得分:5)
数组元素的可能值为0 .. 9,每个的概率为1/10。如果其中一个元素为0,则该乘积也为0。因此,我们计算至少一个元素为0的概率。
事实证明,这与所有大于零的元素相反。元素大于0的概率是9/10,因此所有元素大于零的概率是(9/10)^ 100。
至少有一个元素为0的概率为1 - (9/10)^ 100,约为0.9999734。
答案 1 :(得分:1)
关于nextInt
:javadoc指定:
在0(包括)和0之间均匀分布的int值 指定值(不包括)
a"均匀分布"是一种分布,每个结果都是同样可能的。
因此,特定结果的机会是" 1 / [可能结果的数量]" (所以他们都加1)。关于数组: 填充数组可视为观察100个统计独立事件。
您应该阅读关于组合多个独立事件时数学如何工作的信息。
答案 2 :(得分:0)
https://docs.oracle.com/javase/7/docs/api/java/util/Random.html#nextInt(int)
正如您所料,它将为0
r.nextInt(10)
将返回0到9之间的数字
任何0 * 1-9的乘积都是0,因此对于100个随机数,从该函数返回0的可能性非常低。