¿Cuál es la probabilidad de que de 25 números aleatorios entre 1 y 100, el más alto aparezca más de una vez?

23

En muchos juegos en línea, cuando los jugadores completan una tarea difícil, a veces se otorga una recompensa especial que todos los que completaron la tarea pueden usar. Esto suele ser una montura (método de transporte) u otro elemento de tocador (elementos que no mejoran el rendimiento del personaje y se utilizan principalmente para la personalización de la apariencia).

Cuando se otorga dicha recompensa, la forma más común de determinar quién obtiene la recompensa es a través de números aleatorios. El juego generalmente tiene un comando especial que genera un número aleatorio (probablemente pseudoaleatorio, no aleatorio seguro criptográfico) entre 1 y 100 (a veces el jugador puede elegir otro spread, pero 100 es el más común). Cada jugador usa este comando, todos los jugadores pueden ver quién lanzó qué y el objeto se otorga a la persona que obtiene el mayor puntaje. La mayoría de los juegos incluso tienen un sistema incorporado en el que los jugadores simplemente presionan un botón y una vez que todos presionan su botón, el juego hace el resto automáticamente.

A veces, algunos jugadores generan el mismo número alto y nadie los supera. esto generalmente es resuelto por aquellos jugadores que regeneran sus números, hasta que haya un número más alto único.

Mi pregunta es la siguiente: suponga un generador de números aleatorios que puede generar cualquier número entre 1 y 100 con la misma probabilidad. Suponga que tiene un grupo de 25 jugadores que cada uno genera 1 número con un generador de números aleatorio (cada uno con su propia semilla). Tendrás 25 números entre 1 y 100, sin limitaciones sobre cuántos jugadores tiran un número específico y sin relación entre los números. ¿Cuál es la posibilidad de que el número más alto generado sea generado por más de 1 jugador? En otras palabras, ¿cuál es la probabilidad de un empate?

Nzall
fuente
77
World of Warcraft eh?
Behacad
1
Sí, es uniforme al azar, como se indica en la pregunta (cualquier número entre 1 y 100 inclusive tiene la misma probabilidad.
Nzall
Buena pregunta, pero esto me parece una mala forma de elegir un ganador. Simplemente haga una lista de los jugadores de alguna manera (podría decir "nombres alfabéticamente" o baraje y muestre a todos la lista, u ordene de alguna otra manera), y elija un número aleatorio entre 1 y 25. El número correspondiente al jugador gana.
Tim S.
2
Noobs, usa DKP!
Davor
2
Sugerencia: dada una muestra aleatoria de U { 1 , ... , 100 } , necesitamos calcular P ( X ( 24 ) < X ( 25 ) ) usando lo que sabemos de la teoría de las estadísticas de orden. X1,,X25U{1,,100}P(X(24)<X(25))
Zen

Respuestas:

25

Dejar

  • sea ​​el extremo superior de su rango, x = 100 en su caso.xx=100
  • sea ​​el número total de sorteos, n = 25 en su caso.nn=25

Para cualquier número , el número de secuencias de n números con cada número en la secuencia y es y n . De estas secuencias, el número que no contiene y s es ( y - 1 ) n , y el número que contiene un y es n ( y - 1 ) n - 1 . Por lo tanto, el número de secuencias con dos o más y s es y n - ( y - 1 ) nyxnyyny(y1)nynorte(y-1)norte-1y El número total de secuencias de n números con el número más alto y que contiene al menos dos y s es x y = 1 ( y n - ( y - 1 ) n - n ( y - 1 ) n - 1 )

ynorte-(y-1)norte-norte(y-1)norte-1
norteyy
y=1x(yn(y1)nn(y1)n1)=y=1xyny=1x(y1)ny=1xn(y1)n1=xnny=1x(y1)n1=xnny=1x1yn1

El número total de secuencias es simplemente . Todas las secuencias son igualmente probables, por lo que la probabilidad es x n - n y = x - 1 y = 1 y n - 1xn

xnny=1y=x1yn1xn

Con hago la probabilidad 0.120004212454.x=100,n=25

He probado esto usando el siguiente programa Python, que cuenta las secuencias que coinciden manualmente (para ), simula y calcula usando la fórmula anterior.x,n

import itertools
import numpy.random as np

def countinlist(x, n):
    count = 0
    total = 0
    for perm in itertools.product(range(1, x+1), repeat=n):
        total += 1
        if perm.count(max(perm)) > 1:
            count += 1

    print "Counting: x", x, "n", n, "total", total, "count", count

def simulate(x,n,N):
    count = 0
    for i in range(N):
        perm = np.randint(x, size=n)
        m = max(perm)
        if sum(perm==m) > 1:
            count += 1
    print "Simulation: x", x, "n", n, "total", N, "count", count, "prob", count/float(N)

x=100
n=25
N = 1000000 # number of trials in simulation

#countinlist(x,n) # only call this for reasonably small x and n!!!!
simulate(x,n,N)
formula = x**n - n*sum([i**(n-1) for i in range(x)])
print "Formula count", formula, "out of", x**n, "probability", float(formula) / x**n

Este programa salió

Simulation: x 100 n 25 total 1000000 count 120071 prob 0.120071
Formula count 12000421245360277498241319178764675560017783666750 out of 100000000000000000000000000000000000000000000000000 probability 0.120004212454
TooTone
fuente
2
2000000.11957
Xnorte
Simulé usando perl y obtuve un 0.005 muy consistente. pastebin.com/gb7JMLt6
agosto
XnorteX=20,norte=5 515600/ /160000=0,0975X,norte, y la probabilidad de la fórmula que deriva. Tengo curiosidad por saber cuál es la fuente del desacuerdo entre nuestro código.
TooTone
44
107 70.119983,n = 10^7; Total[Boole[Equal @@ (#[[Ordering[#, -2]]])] & /@ x = RandomInteger[{1, 100}, {n, 25}]] / n
3

Consideraría encontrar primero la probabilidad de tener un ganador único

X(251)(X-1)2410025y-1

El ganador puede ganar con su número igual a 2 a 100, por lo que la probabilidad total es

yo=210025(yo-1)2410025=25yo=199yo2410025=-14 4+25yo=1100yo2410025-14 4+25124+110024+1+1210024+24216 61002310025=0,88

Aquí usé la aproximación hasta 10023 Para referencia: https://en.wikipedia.org/wiki/Faulhaber 's_formula

Por lo tanto, la probabilidad de tener un empate es 1-0,88=0,12

Gary
fuente
-3

Parece una pregunta muy similar a la paradoja del cumpleaños ( http://en.wikipedia.org/wiki/Birthday_problem ), la única diferencia es que en este caso no desea hacer coincidir ningún número, sino solo el número más alto. El primer paso en el cálculo calcula la probabilidad de que ninguno de los números aleatorios se superponga (pags) (ver el enlace de arriba) y luego la probabilidad de que algunos de los 25 números se superpongan es1-pagsdonde p es la probabilidad que ya calculó. En este caso, la probabilidad de que los 25 números no se superpongan con el máximo viene dada por: pags=1(1-1/ /100)(1-1/ /100)......(1-1/ /10)=(1-1/ /100)24 entonces la probabilidad que estás buscando es PAGS=1-pags=1-(1-1/ /100)24=0.214

Michel G
fuente
¿Significa esto que la probabilidad es del 21.4%? parece bastante alto, pero de nuevo, la paradoja del cumpleaños tiene una respuesta sorprendente similar. Gracias.
Nzall
66
-1 Tal como está, esta respuesta no es correcta. La respuesta correcta fue proporcionada por @TooTone.
COOLSerdash