2016-01-21 76 views
1

我讀數據結構和算法在Java中的書,我碰到以下問題,我希望得到的幫助就來了:java.util.Random中挖掘稍深

假設你是給出一個數組,A,包含使用方法r.nextInt(10)生成的100個整數,其中r是類型爲java.util.Random的對象。令x表示A中整數的乘積。有一個單數,x的概率至少等於0.99。那個數字是多少?描述x等於那個數字的概率的公式是什麼?

我認爲x等於零;因爲很可能會生成0。但是,這只是一個猜測。我無法找到配方。 java documentation未指定隨機化公式,我無法在此處或在使用Google進行搜索之後找到任何相關主題。

我想得到一些幫助的概率公式請。提前致謝。

+3

這個問題不是關於'java.util.Random'。這是關於概率的一般數學問題 - 任何統一的隨機生成器都會導致相同的答案。 – gudok

+0

由於它是產品,而不是我錯誤地閱讀的,因此大多數時候'x'應該是0。但是在這100個數字中有一個很小的機會,不會有一個0會發生,因此可能性爲0.99。我不確定這個概率的確切公式,但我相信它是符合1的概率的 - (概率0,即1/10,除以發生概率的數量,即100)。 – jonhopkins

回答

5

數組元素的可能值爲0..9,每個元素的概率爲1/10。如果其中一個元素爲0,則產品也將爲0。所以我們計算至少有一個元素爲0的概率。

事實證明,這與所有大於零的元素相反。元素大於0的概率是9/10,因此所有元素大於零的概率是(9/10)^ 100。

因此,至少一個元素爲0的概率爲1 - (9/10)^ 100,大約爲0.9999734。

1

關於nextInt:的Javadoc指定:

均勻分佈int值介於0(含)和 指定值(不)

一個 「均勻分佈」 是一個分配,其中每個結果同樣可能。

因此特定結果的機會是「1/[可能結果的數量]」(因此它們全部合計爲1)。

關於數組: 填充數組可以被視爲觀察100個統計獨立事件。

您應該閱讀,瞭解組合多個獨立事件時數學如何工作。