Problemas:
Es bastante simple: tenemos una lista de números de $x_1, x_2, \ldots,x_n,\ldots, x_m$. Nuestro objetivo es al azar y de manera uniforme elegir un subconjunto de a $n$ muchos números de estos.
Esto significa que, para cualquier $i \in \{1,2,\ldots,n,\ldots,m\}$, la probabilidad de elegir el valor de $x_i$ debe ser: $$ n\frac{1}{m} = \frac{n}{m} $$
Un algoritmo:
Una instrucción es $\text{swap}(x_{\text{left}},x_{\text{right}})$. Es simplemente cambia sus valores. I. e.
- $t := x_{\text{left}}$
- $x_{\text{left}} := x_{\text{right}}$
- $x_{\text{right}} := t$
Una propuesta de algoritmo: para cada una de las $i \in \{1,2,\ldots,n\}$, de forma aleatoria y uniformemente elegir algunos $k_i \in \{1,2,\ldots,n, \ldots, m\}$, y, a continuación, ejecute $\text{swap}(x_i, x_{k_i})$. Luego regresar $x_1, x_2, \ldots, x_n$ como el conjunto de $n$-muchos de los números elegidos.
El reto:
Intuitivamente, que el algoritmo a mi me parece perfectamente bien. No veo absolutamente ningún problema en ello.
Pero cuando trato de mirar matemáticamente, no puedo probarlo. En lugar de eso, me parece realmente de demostrar que no es una solución correcta!
En primer lugar, echemos un vistazo a la probabilidad de elegir la primera de las $n$ números:
Para cualquier $i \in \{1,2,\ldots,n\}$, $x_i$ puede ser elegido si:
- $x_i$ existe en la mano derecha de $\text{swap}$. Hay exactamente $n$ de los casos, incluyendo el caso al $x_i$ existe en tanto, la izquierda y la mano derecha.
- $x_i$ existe en la mano izquierda, de tal manera que no existe $x_j$ en la mano derecha tal que $j \in \{1,2,\ldots,n\}$. Hay exactamente $n$ tales casos, uno de los cuales es el caso cuando se $i=j$ que hemos contado anteriormente. Por lo tanto, para evitar el recuento de los casos de $i=j$ dos veces, suponemos que no se $n-1$ de los casos.
No hay ningún otro caso en que $x_i$ es elegido. Por lo tanto, la probabilidad de elegir un número $x_i$, dado que el $i \in \{1,2,\ldots,n\}$ es: $$ \frac{n + (n-1)}{m^2} $$
Ahora, echemos un vistazo a la probabilidad de elegir el restablecimiento de los números hasta el $m$:
Para cualquier $i \in \{n+1,n+2,\ldots,m\}$, $x_i$ puede ser elegido si:
- $x_i$ existe en la mano derecha, de tal manera que no existe $x_j$ en la mano derecha tal que $j \in \{1,2,\ldots,n\}$. Hay exactamente $n$ de esos casos.
No hay ningún otro caso de tener $x_i$ elegido. Así que la probabilidad de elegir a $x_i$ es: $$ \frac{n}{m^2} $$
La comparación de las probabilidades:
Que dice que hay un sesgo. La probabilidad de elegir el 1 $n$ números es mayor que la probabilidad de elegir el restablecimiento de los números hasta el $m^{th}$
Mi pregunta:
¿De dónde me salen mal? Cómo abordar este problema?