Distributions
如何確定隨機數生成器使用均勻分佈的可能性?
假設我有一個黑盒函數
generate_number()
,可以生成 1-N 之間的隨機數;並且假設N
是已知的。每個函數調用相互獨立,不攜帶任何狀態。我用它來生成
X
數字;假設這些數字沒有存儲在任何地方,所以我無法建立它們的確切列表。我還有另一個黑盒函數
num_seen_numbers()
,它告訴我生成Y
了多少個唯一數字N
。例如。假設
N = 100
(給定),我調用了generate_number()
40 次(X = 40
)。然後我打電話num_unseen_numbers()
,它說在所有N = 100
可能的數字中,它只生成了 15 個唯一的數字 (Y = 15
)。有沒有辦法確定其生成
generate_number()
具有潛在均勻概率分佈的可能性?
這是另一種形式的生日問題。
和 $ d $ 同樣可能的天數和 $ n $ 獨立抽籤,預期抽籤的不同天數為 $ d(1-(1-\frac1d)^n) $ 在你的情況下 $ d=100 $ 和 $ n=40 $ 是關於 $ 33.1 $ , 而不是 $ 15 $ .
的概率 $ x $ 繪製的不同日期是 $ \dfrac{d! , S_2(n,x)}{(d-x)!, d^n} $ 在哪裡 $ S_2(n,x) $ 是第二類斯特林數。
在你的情況下 $ d=100 $ 和 $ n=40 $ 和 $ x=15 $ 這個概率大約是 $ 9.47\times 10^{-17} $ 並且對於 $ x \le 15 $ 是關於 $ 9.61\times 10^{-17} $ ,兩者都非常小。相比之下,概率為 $ 29 \le x \le 38 $ 是關於 $ 0.9765 $ .
您可以將其用作可能的測試,以確保抽籤是統一且獨立的。