Probabilidad de que el arreglo de Secret Santa resulte en emparejamientos perfectos

11

Entonces, teníamos a Secret Santa en el trabajo.

Somos 8 personas Cada uno se turnaba y sacaba un pequeño trozo de papel de un tazón con un nombre. La única regla: si sacas tu nombre, debes volver a poner el papel en el tazón e intentarlo de nuevo.

Llamemos a las personas A, B, C, D, E, F, G, H, que también es el orden en que eligieron su hoja de papel.

Hicimos el intercambio de regalos anoche.

A era el secreto de santa de F.
B era el secreto de E, santa.
C era el secreto de D, santa.
D era el secreto de santa de C.
E era el secreto de B santa.
F era el secreto de santa.
G era el secreto de H santa.
H era el secreto de santa de G.

¿Ves lo que pasó? Hicimos parejas.

A y F eran el secreto de santa de cada uno.
B y E eran el secreto santa del otro.
C y D eran la santa secreta del otro.
G y H eran el secreto de Santa.

¿Cuál es la probabilidad de que esto ocurra y cómo se calcula?

Hermann
fuente
1
"Si sacas tu nombre, tienes que volver a poner el papel en el tazón e intentarlo de nuevo". ¿Qué sucede si eres el último en elegir y sacar tu propio nombre?
Juho Kokkala
Si la persona A dibuja la etiqueta C (por ejemplo), y luego la persona B dibuja la etiqueta B, ¿la persona A también vuelve a poner la etiqueta C en el sombrero y vuelve a dibujar? Esto es lo que parecen implicar las respuestas, pero entiendo que la redacción significa que A mantiene las etiquetas C y B redibujadas del sombrero que contiene etiquetas (A, B, D, E, F, G, H).
Juho Kokkala

Respuestas:

14

El número total de asignaciones entre personas, donde nadie se asigna a sí mismos, es (Estos se denominan trastornos ). ¡El valor está muy cerca de .2n

d(2n)=(2n)!(1/21/6++(1)k/k!++1/(2n)!).
(2n)!/e

Si corresponden a emparejamientos perfectos, entonces son producto de transposiciones disjuntas . Esto implica que su estructura de ciclo es de la forma

(a11a12)(a21a22)(an1an2).

El número de patrones distintos es el orden del grupo de todas las permutaciones de los nombres dividido por el orden del estabilizador del patrón. Un elemento estabilizador puede intercambiar cualquier número de pares y también puede permutar elpares, de donde hayElementos estabilizadores. Por lo tanto hay2nn!2nn!

p(2n)=(2n)!2nn!

tales parejas.

Como todos estos emparejamientos perfectos son alteraciones, y todas las alteraciones son igualmente probables, la probabilidad es igual

p(2n)d(2n)=12nn!(11/2+1/6+(1)k/k!++1/(2n)!)e2nn!.

Para personas, la respuesta exacta es, por lo tanto, mientras que la aproximación es : están de acuerdo con cinco cifras significativas.2n=815/21190.00707881e/(244!)0.00707886


Para verificar, esta Rsimulación dibuja un millón de permutaciones aleatorias de ocho objetos, retiene solo aquellos que son trastornos y cuenta los que son emparejamientos perfectos. Produce su estimación, el error estándar de la estimación y una puntuación Z para compararlo con el valor teórico. Su salida es

       p.hat           se            Z 
 0.006981031  0.000137385 -0.711721705

La pequeña puntuación Z es consistente con el valor teórico. (Estos resultados serían consistentes con cualquier valor teórico entre y ).0.00660.0073

paired <- function(x) crossprod(x[x] - 1:length(x))==0
good <- function(x) sum(x==1:length(x)) == 0

n <- 8
set.seed(17)
x <- replicate(1e6, sample(1:n, n))
i.good <- apply(x, 2, good)
i.paired <- apply(x, 2, paired)

n.deranged <- sum(i.good)
k.paired <- sum(i.good & i.paired)
p.hat <- k.paired / n.deranged
se <- sqrt(p.hat * (1-p.hat) / n.deranged)
(c(p.hat=p.hat, se=se, Z=(p.hat - 15/2119)/se))
whuber
fuente
+1 por la cara de mapache tonta y las gafas ... Tomé un poco de atajo sobre el concepto de "elemento estabilizador" porque no sé por dónde empezar a buscarlo, pero tiene mucho sentido incluso tomar ese pedazo intuitivamente
Antoni Parellada
@Antoni Ver en.wikipedia.org/wiki/Burnside's_lemma por ejemplo.
whuber
1
@Amoeba Pensé en hacerlo, pero decidí concentrarme en el problema actual, ya que los trastornos son muy conocidos. El artículo de Wikipedia al que me vinculé proporciona varios métodos para derivar esta fórmula. El método más evidente utiliza el Principio de inclusión-exclusión, como es evidente en la expresión de suma alterna.
whuber
1
¿Asume que el dibujo de las etiquetas se inicia desde cero si alguien dibuja su propia etiqueta (vea mis comentarios a la pregunta). De lo contrario, no creo que todos los trastornos sean igualmente probables.
Juho Kokkala
1
@Juho Esa es una buena pregunta, digna de más reflexión. He respondido en función de la intención implícita del procedimiento de dibujo, que sería crear todos los trastornos con la misma probabilidad, pero no está claro exactamente qué procedimiento se siguió o si generaría trastornos con una distribución uniforme (o si es incluso garantizado para tener éxito en producir un trastorno!).
whuber
7

Me impresionó bastante la elegancia en la respuesta de @whuber. Para ser sincero, tuve que familiarizarme mucho con los nuevos conceptos para seguir los pasos de su solución. Después de pasar mucho tiempo en ello, decidí publicar lo que obtuve. Entonces, lo que sigue es una nota exegética a su respuesta ya aceptada. De esta manera, no hay ningún intento de originalidad, y mi único objetivo es proporcionar algunos puntos de anclaje adicionales para seguir algunos de los pasos involucrados.

Así que aquí va ...

1. ¿Por qué ? 2nBueno, este puede ser demasiado básico: necesitamos un número par de personas para jugar.

2. ¿Podemos derivar la fórmula para los trastornos?

Siguiendo la entrada de Wikipedia con el ejemplo basado en la coincidencia de personas y sombreros , sombreros para ser precisos, tenemos que las opciones para la primera persona que recoge un sombrero se muestran aquí de la siguiente manera:n

d(n)=(n1)[d(n2)+d(n1)]=

=nd(n2)d(n2)+nd(n1)d(n1) , que se puede reorganizar como:

d(n)nd(n1)=[d(n1)(n1)d(n2)] .

Ahora notando el paralelismo entre el LHS de esta ecuación y la parte del RHS entre paréntesis, podemos continuar recursivamente:

d(n)nd(n1)=[d(n1)(n1)d(n2)]=

=(1)2[d(n2)(n2)d(n3)]==(1)n2d(2)2d(1)

Esto implica que .d(n)=nd(n1)+(1)n

Trabajando al revés:

d(2)=1

d(3)=3d(2)1=311

d(4)=4d(3)+1=4314+1

d(5)=5d(4)1=543154+51

d(6)=6d(5)+1=65431654+656+1=

=6!(12132+143215432+16!)=

=6!(16!15!+14!13!+12!11!+1)

Entonces en general,

d(n)=n!(11+12!13!+14!++1n!)

Y recordando la serie Taylor de evaluada en :exx=1

d(n)n!e

3. Transposición disjunta : El concepto de transposición es fácil de obtener desde el enlace proporcionado en la respuesta original , pero "disjunto" fue un poco menos claro. Mirando un ejemplo, del conjunto , la permutación se puede expresar como un ciclo como:, pero forma un bucle sobre sí mismo - un ciclo disjunto. O, juntando estos dos ciclos, la permutación se puede expresar como el producto .a,b,c,d,e,fb,d,a,c,f,ea -> b -> d -> c after which it returns to ae -> f(a b d c)(e f)

En la pregunta de Santa Claus (ocho empleados tienen nombres dibujados en pares perfectamente combinados: Anna le da un regalo a Martha, mientras que Martha ha dibujado el nombre de Anna) habrá circuitos cerrados.4

4. Para encontrar el número de bucles de dos elementos , necesitamos dividir todas las permutaciones posiblesdel conjunto de ocho ( ) personas por el número total posible de intercambios de dos elementos el número total de permutaciones de estos pares: .(2n)!2n2nn!p(2n)=(2n)!2nn!


Para la Rsimulación:

1) paired <- function(x) crossprod(x[x] - 1:length(x))==0

Esta función se reduce a la comprensión x[x]: está destinada a evaluar un vector de elementos que representa las asignaciones actuales y determinar si está compuesto de bucles de 2 elementos, como en el problema de Santa Claus. Siempre que las permutaciones correspondan a elementos de transposición, de modo que si se suponía que Paul debía darle un regalo a Maria ( y viceversa ) y Max a John ( / ) inicialmente, la transposición resultante solo da como resultado un nuevo emparejamiento perfecto ( / y / ) Estamos cumpliendo la condición inicial de emparejamiento perfecto: 8Paul -> MariaMaria -> PaulMax -> JohnJohn -> MaxMax -> MariaMaria -> MaxPaul -> JohnJohn -> Paulingrese la descripción de la imagen aquí

En otras palabras, si volvemos al ejemplo de los sombreros en Wikipedia, la persona i siempre recupera el sombrero .1

2) good <- function(x) sum(x==1:length(x)) == 0

Esta función evalúa si estamos lidiando con un trastorno comparando el elemento del vector con el vector , 2, 3, 4, 5, , 7, 8 y asegurándose de que no haya coincidencia.( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 )x(1,2,3,4,5,6,7,8)

3.k.paired <- sum(i.good & i.paired) está ahí para excluir permutaciones emparejadas como la anterior en el diagrama, que no son alteraciones:

v <- c(1,2,3,4,5,6,7,8)
w <- c(1,2,3,5,4,6,7,8)

(c("is v paired?" = paired(v), "is w paired?" = paired(w),
   "is v a derang?" = good(w), "is w a derang?" = good(w)))

# not all paired permutations are derangements.
Antoni Parellada
fuente
1
+1, pero la fórmula para los trastornos con debe ser solo aproximada, es decir, con no . =e=
ameba dice Reinstate Monica
1
+1, porque este es un esfuerzo valioso y útil para comprender y explicar una solución. La explicación del producto cruzado parece incorrecta: simplemente calcula la suma de los cuadrados de las entradas. En particular, y no pueden "cancelar". El uso del producto cruzado no es esencial; simplemente fue la primera forma razonablemente eficiente que se me ocurrió para verificar la igualdad de dos vectores numéricos, que es su función lógica en el algoritmo. ¡No confunda la implementación con la explicación! - 111
whuber
@whuber Gracias. Realmente hice el tonto allí. No soy bueno en tareas repetitivas e indexadas ... Sabía que había algo que no estaba bien. Ahora debería estar arreglado.
Antoni Parellada