当小于等于m个数的时候,每个词被选中的概率是100%
假定当有n个数n>m时,每个数被选中的概率的相等的,即m/n。
那么当有n+1个数时,对于第n+1数,以m/(n+1)的概率选择是否选中这个数。
如果选中了第n+1个数,这个数选中的概率就是m/(n+1)。这个数保存在n个位置中的一个,因此又是1/m的概率
前n个数中一个数保存概率是:(m/n) * (n+1-m)/(n+1) + (m/n)*(m/(n+1))*((m-1)/m) = m/(n+1)。
(前n个数一个数选中的概率)*(第n+1的数没有选中的概率)+
(前n个数一个数选中的概率)*(第n+1的数选中的概率)*(不被第n+1的数给替换的概率)。
m/n代表前n个数选m个数的概率。
(n+1-m)/(n+1)代表第n+1个数没有选中的概率。
m/(n+1)代表第n+1个数选中的概率。
(m-1)/m代表m个数中,要新增保存一个数,已保存的情况下,还保存的概率。