Si tiene 10 canciones en un ipod al azar, en promedio, ¿cuántas canciones tiene que escuchar hasta que las haya escuchado al menos una vez?

Algunas implementaciones de “aleatorio” en dispositivos de música son en realidad permutaciones aleatorias, es decir, garantizan que nunca se repitan hasta agotar todas las canciones de la lista de reproducción en algún orden aleatorio. Obviamente, este no es el caso que está considerando: más bien, suponemos que la siguiente canción siempre se selecciona de manera uniforme al azar de todas las canciones de la lista de reproducción, independientemente de si ya se tocaron o no. En particular, puede obtener la misma canción para reproducir dos veces seguidas, lo que no creo que sea realmente el caso con un iPod, pero por simplicidad supongamos que este es el caso.

Esto se llama el problema de Coupon Collector. El número esperado de cupones que necesita recolectar hasta obtener todas las variedades de cupones [math] n [/ math] es aproximadamente [math] n \ log (n) [/ math] donde el registro se lleva a la base [math] e [/ math] (logaritmo natural). La expectativa precisa es [matemática] n \ izquierda (1+ \ frac {1} {2} + \ frac {1} {3} + \ ldots + \ frac {1} {n} \ derecha) [/ matemática].

En su caso (10 canciones), el número esperado de canciones que reproducirá hasta que las visite es

[matemática] 10 \ izquierda (1+ \ frac {1} {2} + \ frac {1} {3} + \ ldots + \ frac {1} {10} \ right) \ aprox 29.29 [/ matemática]

(Como Yair Livne señaló en los comentarios, la aproximación [matemática] 10 \ log (10) \ aprox 23 [/ matemática] no es muy buena para este pequeño valor de [matemática] n [/ matemática]).

La razón de esto es bastante simple: la primera canción será “fresca” con probabilidad 1, por lo que el número esperado de canciones hasta que obtenga la primera canción nueva es simplemente 1 (obviamente). La segunda canción será fresca con probabilidad 9/10, lo que significa que el “tiempo de espera” promedio para la segunda canción nueva es 10/9 (en general, si está esperando un evento con probabilidad p, necesita en promedio 1 / p intenta hasta que sucede. Esto no es difícil de probar y debería sonar bastante razonable). La tercera canción requiere 10/8 pasos, y así sucesivamente: por suma de expectativas, el tiempo total esperado es

[matemáticas] 1+ \ frac {10} {9} + \ frac {10} {8} + \ ldots + \ frac {10} {2} + \ frac {10} {1} [/ matemáticas]

(el último paso es cuando ha escuchado todas las canciones menos una, lo que significa que sus posibilidades de éxito son 1/10 en cada intento, lo que tomaría 10 canciones en promedio para suceder).

Una cosa para agregar es que es poco probable que el reproductor de MP3 esté programado para poder elegir la misma canción dos veces seguidas. En este caso, la solución es similar a la de Amit. Las dos primeras canciones están garantizadas para ser frescas. La probabilidad de obtener una nueva canción después de esto es 8/9, ya que hay 9 canciones posibles y 8 que no se han escuchado. Se necesitarán 9/8 canciones en promedio para escuchar la tercera canción nueva, 9/7 después de eso en promedio para escuchar la cuarta canción nueva, y así sucesivamente.

Entonces la respuesta es
[matemáticas] 2 + 9 \ sum_ {i = 1} ^ 8 1 / i \ aprox 26.46 [/ matemáticas]

Como Alon y Nicholas han señalado, la función de reproducción aleatoria en muchos reproductores de MP3 no es realmente aleatoria, sino un intento de imitar las expectativas de aleatoriedad del usuario. Solo para agregar a ambas excelentes respuestas, una forma de encontrar la solución a problemas como estos es mediante la simulación de Monte Carlo. Dado que probablemente hay varios algoritmos aleatorios en uso y no conocemos las formas particulares en que pueden intentar imitar la expectativa de aleatoriedad, un buen comienzo sería considerar el caso en el que el aleatorio en realidad es aleatorio uniforme. Podemos escribir un programa de computadora para simular aleatoriamente ‘reproducir canciones’ a partir de una lista de reproducción fija de diez (o muchas) canciones hasta que se hayan reproducido todas las canciones de la lista de reproducción, luego observar cuántas canciones se reprodujeron hasta cada canción de la lista había jugado al menos una vez. Podemos hacer esto cientos o miles de veces y calcular la media para obtener una buena aproximación. El siguiente código, escrito en el lenguaje de código abierto R, proporcionará aproximaciones de las expectativas basadas en la distribución geométrica utilizada en las soluciones de forma cerrada.

canciones <- seq (1,10)
n.sims <- 1000
n.songs <- rep (NA, n.sims)

para (s en 1: n.sims) {
jugado <- c ()
while (length (único (reproducido)) reproducido <- c (reproducido, muestra (canciones, 1, reemplazar = VERDADERO))
}

n.songs [s] <- length (reproducido)
}

print (media (n. canciones))

## 28.784

Siguiendo el espíritu del problema, dejemos que [math] p_ {k, n} [/ math] sea la probabilidad de que hayamos escuchado n canciones únicas de las 10 canciones en k cambios de la pista. Esta cifra puede definirse recursivamente de la siguiente manera

  • Hemos escuchado n-1 pistas únicas hasta que (k-1) la pista cambia y el cambio actual reproduce una nueva pista. Esto se representa como [matemáticas] p_ {k-1, n-1} * \ frac {10 – (n-1)} {10} [/ matemáticas]
  • Hemos escuchado n pistas hasta que (k-1) la pista cambia y la actual reproducida es una de las pistas reproducidas anteriormente. Esto se representa como [matemáticas] p_ {k-1, n} * \ frac {n} {10} [/ matemáticas]

La fórmula para [matemáticas] p_ {k, n} [/ matemáticas] es por lo tanto
[matemáticas] p_ {k, n} = p_ {k-1, n-1} * \ frac {10 – (n-1)} {10} + p_ {k-1, n} * \ frac {n} {10} [/ matemáticas]

Los siguientes serán los límites.

  1. [matemáticas] p_ {0,0} = 1 [/ matemáticas] y [matemáticas] p_ {1,1} = 1 [/ matemáticas]
  2. [matemática] p_ {0, n} = 0 [/ matemática] y [matemática] p_ {k, 0} = 0 [/ matemática] para [matemática] k, n \ ge 1 [/ matemática]
  3. [matemática] p_ {k, n} = 0 [/ matemática] para [matemática] k

Usando la recursión anterior y encontrando varias [matemáticas] p_ {k, 10} [/ matemáticas], se puede observar que [matemáticas] p_ {10,10} = 0.000363 [/ matemáticas] y aumenta a aproximadamente 0.1 para k = 17 y es aproximadamente 0.5 para k = 27. Para k = 66, esto será cierto el 99% del tiempo.