Probablemente sea una pregunta de entrevista. El muestreo de residuos es utilizado por el científico de datos para almacenar datos relevantes en un almacenamiento limitado a partir de una gran cantidad de datos.
Si usted tiene que recoger k elementos de cualquier matriz con los elementos n, tales que la probabilidad de cada elemento de recogida debe ser el mismo (k/n), se siguen dos pasos,
1) almacenar primeros k elementos en el almacenamiento. 2) Cuando el siguiente elemento (k + 1) proviene de la secuencia, obviamente ya no tiene espacio en su colección. Genere un número aleatorio de o a n, si el número aleatorio generado es menor que k supongamos l, reemplace el almacenamiento [ l] con el elemento (k + 1) de la secuencia.
Ahora, volviendo a su pregunta, aquí el tamaño de almacenamiento es 1. Así que elegirá el primer nodo, iterará sobre la lista para el segundo elemento. Ahora genere el número aleatorio, si es 1, deje la muestra sola, de lo contrario cambie el elemento de almacenamiento de la lista
@Giacomon ¿Hay alguna razón cree que esto no funcionará para pequeñas colecciones. Entendí que la pregunta era proporcionar un algoritmo de muestreo uniforme en línea, esto encaja muy bien. Creo que –
@Aurojit: Creo que Giacomo solo dice que esta solución es buena tanto para colecciones grandes como pequeñas. –
@Chris: no no me equivoqué – gd1