Probabilità che la disposizione di Babbo Natale segreto si tradurrà in abbinamenti perfetti


11

Quindi, avevamo Babbo Natale segreto al lavoro.

Siamo 8 persone. Ognuno di noi si alternò e tirò fuori un piccolo pezzo di carta da una ciotola con sopra un nome. L'unica regola: se tiri il tuo nome, devi rimettere il pezzo di carta nella ciotola e riprovare.

Chiamiamo le persone A, B, C, D, E, F, G, H, che è anche l'ordine in cui hanno raccolto il loro pezzo di carta.

Abbiamo fatto lo scambio di regali ieri sera.

A era la santa segreta di F.
B era la santa segreta di E.
C era la santa segreta di D.
D era la santa segreta di C.
E era la santa segreta di B.
F era la santa segreta di A.
G era la santa segreta di H.
H era la santa segreta di G.

Vedi cosa è successo? Abbiamo fatto coppie.

A e F erano la santa segreta l'una dell'altra.
B ed E erano l'un l'altro la santa segreta.
C e D erano l'un l'altro la santa segreta.
G e H erano l'un l'altro la santa segreta.

Qual è la probabilità che ciò accada e come si calcola?


1
"Se tiri il tuo nome, devi rimettere il pezzo di carta nella ciotola e riprovare." Cosa succede se sei l'ultimo a scegliere e tirare il tuo nome?
Juho Kokkala,

Se la persona A disegna l'etichetta C (diciamo), e quindi la persona B disegna l'etichetta B, anche la persona A rimette l'etichetta C nel cappello e disegna di nuovo? Questo è ciò che le risposte sembrano implicare, ma capisco la formulazione per indicare che A mantiene l'etichetta C e B ridisegna dal cappello che contiene etichette (A, B, D, E, F, G, H).
Juho Kokkala,

Risposte:


14

Il numero totale di incarichi tra persone, in cui nessuno è assegnato a se stesso, è (Questi sono chiamati derangements .) Il valore è molto vicino a .d ( 2 n ) = ( 2 n ) ! ( 1 / 2 - 1 / 6 + + ( - 1 ) k / k ! + + 1 / ( 2 n ) ! ) . ( 2 n ) ! / e2n

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

Se corrispondono a accoppiamenti perfetti, sono un prodotto di trasposizioni disgiunte . Ciò implica che la struttura del loro ciclo è della forma

(a11a12)(a21a22)(an1an2).

Il numero di tali modelli distinti è l'ordine del gruppo di tutte le permutazioni dei nomi diviso per l'ordine dello stabilizzatore del modello. Un elemento stabilizzante può scambiare qualsiasi numero di coppie e può anche permutare ilcoppie, da dove ci sonoelementi stabilizzanti. Quindi ci sono2nn!2nn!

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

tali abbinamenti.

Poiché tutti questi accoppiamenti perfetti sono disallineamenti e tutte le disequazioni sono ugualmente probabili, la probabilità è uguale

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

Per persone la risposta esatta è quindi mentre l'approssimazione è : concordano cinque cifre significative.15 / 2119 ,00,707881 millions e / ( 2 42n=815/21190.00707881e/(244!)0.00707886


Per verificare, questa Rsimulazione disegna un milione di permutazioni casuali di otto oggetti, conserva solo quelli che sono squilibri e conta quelli che sono accoppiamenti perfetti. Produce la sua stima, l'errore standard della stima e un punteggio Z per confrontarlo con il valore teorico. Il suo output è

       p.hat           se            Z 
 0.006981031  0.000137385 -0.711721705

Il piccolo punteggio Z è coerente con il valore teorico. (Questi risultati sarebbero coerenti con qualsiasi valore teorico compreso tra e .)0,00730.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))

+1 per la stupida faccia di procione e gli occhiali ... Ho preso un po 'di scorciatoia sul concetto di "elemento stabilizzante" perché non so da dove iniziare a cercarlo, ma ha molto senso anche prendere quel po' intuitivamente.
Antoni Parellada,

@Antoni Vedi ad esempio en.wikipedia.org/wiki/Burnside's_lemma .
whuber

1
@Amoeba Avevo pensato di farlo, ma ho deciso di rimanere concentrato sul problema attuale, dal momento che gli squilibri sono così noti. L'articolo di Wikipedia che ho collegato fornisce diversi metodi per derivare questa formula. Il metodo più evidente utilizza il principio di inclusione-esclusione, come risulta dall'espressione della somma alternata.
whuber

1
Supponi che il disegno delle etichette venga avviato da zero se qualcuno disegna la propria etichetta (vedi i miei commenti alla domanda). Altrimenti, non penso che tutti gli squilibri siano ugualmente probabili.
Juho Kokkala,

1
@Juho Questa è una buona domanda, degna di ulteriori riflessioni. Ho risposto in base alla implicita intento della procedura di disegno, che sarebbe quello di creare tutte le alterazioni con uguale probabilità, ma non è chiaro esattamente quale procedura è stata seguita o se sarebbe generare disordini con una distribuzione uniforme (o se si tratta di anche garantito di riuscire a produrre uno squilibrio!).
whuber

7

Sono rimasto piuttosto colpito dall'eleganza nella risposta @whuber. Ad essere sincero, ho dovuto fare molta conoscenza di nuovi concetti per seguire i passaggi della sua soluzione. Dopo aver trascorso molto tempo, ho deciso di pubblicare quello che ho ottenuto. Quindi ciò che segue è una nota esegetica alla sua risposta già accettata. In questo modo non vi è alcun tentativo di originalità e il mio unico obiettivo è fornire alcuni punti di ancoraggio aggiuntivi per seguire alcuni dei passaggi coinvolti.

Quindi eccolo qui ...

1. Perché ? 2nBene, questo potrebbe essere troppo semplice: abbiamo bisogno di un numero pari di persone per giocare.

2. Possiamo derivare la formula per gli squilibri?

Seguendo la voce di Wikipedia con l'esempio basato sull'abbinamento di persone e cappelli , cappelli per essere precisi, abbiamo che le opzioni per la prima persona che prendono un cappello sono mostrate qui come segue:n

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

=nd(n2)d(n2)+nd(n1)d(n1) , che può essere riorganizzato come:

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

Ora notando il parallelismo tra LHS di questa equazione e la parte su RHS tra parentesi possiamo continuare ricorsivamente:

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

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

Ciò implica che .d(n)=nd(n1)+(1)n

Lavorare all'indietro:

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)

Quindi in generale,

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

E ricordando la serie di Taylor di valutata in :exx=1

d(n)n!e

3. Trasposizione disgiunta : il concetto di trasposizione è facile da ottenere dal collegamento fornito nella risposta originale , ma "disgiunto" era un po 'meno chiaro. Guardando un esempio, dall'insieme , la permutazione può essere espressa come un ciclo come:, ma forma un ciclo su se stesso - un ciclo disgiunto. Oppure, unendo questi due cicli, la permutazione può essere espressa come prodotto .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)

Nella domanda di Babbo Natale (otto impiegati hanno disegnato nomi in coppie perfettamente abbinate: Anna fa un regalo a Martha, mentre Martha ha disegnato il nome di Anna) ci saranno anelli chiusi.4

4. Per trovare il numero di loop a due elementi dobbiamo dividere tutte le possibili permutazionidell'insieme di otto ( ) persone per il numero totale possibile di swap di due elementi e il numero totale di permutazioni di queste coppie: .(2n)!2n2nn!p(2n)=(2n)!2nn!


Per la Rsimulazione:

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

Questa funzione si riduce alla comprensione x[x]: ha lo scopo di valutare un vettore di elementi che rappresenta i compiti attuali e determinare se è composto da anelli a 2 elementi, come nel problema di Babbo Natale. Fintanto che le permutazioni corrispondono a elementi di trasposizione in modo che se Paul dovesse inizialmente dare un regalo a Maria ( e viceversa ) e Max a John ( / ), la trasposizione risultante si tradurrà in un nuovo accoppiamento perfetto ( / e / ) stiamo soddisfando la condizione iniziale di un perfetto abbinamento: 8Paul -> MariaMaria -> PaulMax -> JohnJohn -> MaxMax -> MariaMaria -> MaxPaul -> JohnJohn -> Paulinserisci qui la descrizione dell'immagine

In altre parole, se torniamo all'esempio dei cappelli in Wikipedia, la persona riprende i sempre il cappello .1

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

Questa funzione valuta se abbiamo a che fare con uno squilibrio confrontando l' elemento vettore saggio con il vettore e assicurandoci che non vi siano coincidenze.( 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) è lì per escludere permutazioni accoppiate come quella sopra nel diagramma, che non sono disordinamenti:

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.

1
+1, ma la formula per gli squilibri con dovrebbe essere solo approssimativa, ovvero con not . =e=
ameba dice di reintegrare Monica il

1
+1, perché questo è uno sforzo degno e utile per comprendere e spiegare una soluzione. La spiegazione del prodotto incrociato sembra errata: calcola semplicemente la somma dei quadrati delle voci. In particolare, e non possono "annullare". L'uso del prodotto incrociato è inessenziale; era semplicemente il primo modo ragionevolmente efficace che mi veniva in mente per verificare l'uguaglianza di due vettori numerici, che è il suo ruolo logico nell'algoritmo. Non confondere l'implementazione con la spiegazione! - 111
whuber

@whuber Grazie. Mi sono davvero divertito lì. Non sono bravo in compiti ripetitivi e indicizzati ... Sapevo che c'era qualcosa che non andava. Ora dovrebbe essere risolto.
Antoni Parellada,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.