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−1d)n) 在你的情況下 d=100 和 n=40 是關於 33.1 , 而不是 15 .
的概率 x 繪製的不同日期是 d!,S2(n,x)(d−x)!,dn 在哪裡 S2(n,x) 是第二類斯特林數。
在你的情況下 d=100 和 n=40 和 x=15 這個概率大約是 9.47×10−17 並且對於 x≤15 是關於 9.61×10−17 ,兩者都非常小。相比之下,概率為 29≤x≤38 是關於 0.9765 .
您可以將其用作可能的測試,以確保抽籤是統一且獨立的。