RANDOM MIN(A[1::n])
min = infinity
for i = 1 to n in random order
if A[i] < min
min = A[i] ---- (*)
return min
第k次迭代执行第*行的概率是多少?
我发现它是1 / n,除了第一次迭代。
原因是随机顺序生成n!可能的结果和第k次迭代A [第k个生成的结果]可以是n个中的任何一个。并且为了最小化,有n种可能性,因此1 / n。
一个例子:对于n = 3,k = 2
输入:(10,11,12)或3个
permutations if A[2] < min
123 N
132 N
213 Y
231 N
312 Y//edited mislabeled it earlier
321 Y
行执行的第二次迭代的概率与所有其他1 / n的概率相同,除了第一行是1,因为它始终保持
如果我错了,请告诉我,因为我的教授说它是1 / k,我对他的解释不满意!
答案 0 :(得分:2)
你混淆了“最小值在哪里”和“线是否被执行”的问题。
最小值处于一个随机的位置,因此概率为1 / N,它位于一个特定的位置。
但要找到它,你需要执行该行,这种情况发生的概率越来越小:
A [1]小于无穷大,概率为
A [2]小于A [1],概率为1/2。
等
答案 1 :(得分:1)
Round 1: 1 in 1 chance it is the smallest so far
Round 2: 1 in 2 chance it is the smallest so far
Round 3: 1 in 3 chance it is the smallest so far
Round 4: 1 in 4 chance it is the smallest so far
...
...
Round k: 1 in K chance it is the smallest so far