Wahrscheinlichkeit, dass die Anordnung des geheimen Weihnachtsmanns zu perfekten Paarungen führt

11

Also hatten wir Secret Santa bei der Arbeit.

Wir sind 8 Leute. Wir wechselten uns ab und zogen ein kleines Stück Papier aus einer Schüssel mit einem Namen darauf. Einzige Regel: Wenn Sie Ihren Namen ziehen, müssen Sie das Stück Papier wieder in die Schüssel legen und es erneut versuchen.

Nennen wir die Leute A, B, C, D, E, F, G, H, was auch die Reihenfolge ist, in der sie ihr Stück Papier ausgewählt haben.

Wir haben gestern Abend den Geschenkaustausch gemacht.

A war Fs geheimer Weihnachtsmann.
B war E's geheimer Weihnachtsmann.
C war Ds heimlicher Weihnachtsmann.
D war Cs geheimer Weihnachtsmann.
E war B's geheimer Weihnachtsmann.
F war A's geheimer Weihnachtsmann.
G war Hs geheimer Weihnachtsmann.
H war Gs geheimer Weihnachtsmann.

Sehen Sie, was passiert ist? Wir haben Paare gemacht.

A und F waren die geheimen Weihnachtsmänner des anderen.
B und E waren die geheimen Weihnachtsmänner des anderen.
C und D waren die geheimen Weihnachtsmänner des anderen.
G und H waren die geheimen Weihnachtsmänner des anderen.

Wie hoch ist die Wahrscheinlichkeit dafür und wie berechnen Sie sie?

hermann
quelle
1
"Wenn Sie Ihren Namen ziehen, müssen Sie das Stück Papier wieder in die Schüssel legen und es erneut versuchen." Was passiert, wenn Sie der letzte sind, der Ihren eigenen Namen auswählt?
Juho Kokkala
Wenn Person A Etikett C zeichnet (sagen wir) und Person B Etikett B zeichnet, setzt Person A dann auch Etikett C wieder in den Hut und zeichnet erneut? Dies ist, was die Antworten zu implizieren scheinen, aber ich verstehe den Wortlaut so, dass A das Etikett C behält und B aus dem Hut, der Etiketten enthält (A, B, D, E, F, G, H), neu zeichnet.
Juho Kokkala

Antworten:

14

Die Gesamtzahl der Aufgaben unter Personen, denen niemand zugewiesen ist, beträgt d ( 2 n ) = ( 2 n ) ! ( 1 / 2 - 1 / 6 + + ( - 1 ) k / k ! + + 1 / ( 2 n ) ! ) . (Diese werden als Störungen bezeichnet .) Der Wert liegt sehr nahe bei (2n

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

Wenn sie perfekten Paarungen entsprechen, sind sie ein Produkt disjunkter Transpositionen . Dies impliziert, dass ihre Zyklusstruktur die Form hat

(a11a12)(a21a22)(an1an2).

Die Anzahl unterschiedlicher solcher Muster ist die Reihenfolge der Gruppe aller Permutationen der Namen geteilt durch die Reihenfolge des Stabilisators des Musters. Ein stabilisierendes Element kann eine beliebige Anzahl von Paaren tauschen und es kann auch das n permutieren ! Paare, woher gibt es 2 n n ! stabilisierende Elemente. Deshalb gibt es2nn!2nn!

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

solche Paarungen.

Da alle diese perfekten Paarungen Störungen sind und alle Störungen gleich wahrscheinlich sind, ist die Chance gleich

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

Für Personen daher die genaue Antwort ist 15 / 2119 0,00707881 während die Näherung e / ( 2 42n=815/21190.00707881 : Sie stimmen mit fünf signifikanten Zahlen überein.e/(244!)0.00707886


Zur Überprüfung zeichnet diese RSimulation eine Million zufälliger Permutationen von acht Objekten, behält nur diejenigen bei, die Störungen sind, und zählt diejenigen, die perfekte Paarungen sind. Es gibt seine Schätzung, den Standardfehler der Schätzung und einen Z-Score aus, um sie mit dem theoretischen Wert zu vergleichen. Seine Ausgabe ist

       p.hat           se            Z 
 0.006981031  0.000137385 -0.711721705

Der kleine Z-Score stimmt mit dem theoretischen Wert überein. (Diese Ergebnisse stimmen mit jedem theoretischen Wert zwischen und 0,0073 überein .)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
quelle
+1 für das alberne Waschbärengesicht und die Brille ... Ich habe eine Abkürzung zum Konzept "Stabilisierendes Element" gewählt, weil ich nicht weiß, wo ich anfangen soll, danach zu suchen, aber es macht sehr viel Sinn, auch nur dieses bisschen zu nehmen intuitiv.
Antoni Parellada
@Antoni Siehe zum Beispiel en.wikipedia.org/wiki/Burnside's_lemma .
whuber
1
@Amoeba Ich hatte darüber nachgedacht, mich aber entschlossen, mich auf das gegenwärtige Problem zu konzentrieren, da Störungen so bekannt sind. Der Wikipedia-Artikel, auf den ich verlinkt habe, bietet verschiedene Methoden zum Ableiten dieser Formel. Die offensichtlichste Methode verwendet das Prinzip des Einschluss-Ausschlusses, wie aus dem alternierenden Summenausdruck hervorgeht.
whuber
1
Gehen Sie davon aus, dass das Zeichnen von Etiketten von vorne begonnen wird, wenn jemand sein eigenes Etikett zeichnet (siehe meine Kommentare zur Frage). Ansonsten denke ich nicht, dass alle Störungen gleich wahrscheinlich sind.
Juho Kokkala
1
@Juho Das ist eine gute Frage, die weitere Überlegungen wert ist. Ich habe auf der Grundlage der impliziten Absicht des Zeichenverfahrens geantwortet , alle Störungen mit gleicher Wahrscheinlichkeit zu erzeugen, aber es ist nicht klar, welches Verfahren genau befolgt wurde oder ob es Störungen mit einer gleichmäßigen Verteilung erzeugen würde (oder ob dies der Fall ist) sogar garantiert, um eine Störung zu produzieren!).
whuber
7

Ich war ziemlich beeindruckt von der Eleganz in @whuber Antwort. Um ehrlich zu sein, musste ich mich viel mit neuen Konzepten vertraut machen, um den Schritten in seiner Lösung zu folgen. Nachdem ich viel Zeit damit verbracht habe, habe ich beschlossen, das zu posten, was ich habe. Was folgt, ist eine exegetische Anmerkung zu seiner bereits akzeptierten Antwort. Auf diese Weise gibt es keinen Versuch der Originalität, und mein einziges Ziel ist es, einige zusätzliche Verankerungspunkte bereitzustellen, um einige der Schritte zu befolgen.

Also los geht's ...

2n

2. Können wir die Formel für Störungen ableiten?

n

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

=nd(n2)d(n2)+nd(n1)d(n1)

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

Wenn wir nun die Parallelität zwischen der LHS dieser Gleichung und dem Teil auf der RHS in Klammern bemerken, können wir rekursiv fortfahren:

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

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

d(n)=nd(n1)+(1)n

Rückwärts arbeiten:

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)

Also im Allgemeinen

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

exx=1

d(n)n!e

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)

4

(2n)! of the set of eight (2n) people by the total possible number of swaps of two elements 2n and the total number of permutations of these pairs n!: p(2n)=(2n)!2nn!.


For the R simulation:

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

This function boils down to understanding x[x]: It is meant to evaluate an 8 element vector representing the present assignments, and determine whether it is composed of 2-element loops, as in the Santa Claus problem. As long as the permutations correspond to transposing elements so that if Paul was supposed to give a present to Maria (Paul -> Maria and vice versa, Maria -> Paul) and Max to John (Max -> John / John -> Max) initially, the resultant transposition just results in new perfect pairing (Max -> Maria / Maria -> Max and Paul -> John / John -> Paul) we are fulfilling the initial condition of perfect pairing: enter image description here

In other words, if we go back to the example of the hats in Wikipedia person i always takes back hat 1.

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

This function evaluates whether we are dealing with a derangement by comparing the vector x element wise to the the vector (1,2,3,4,5,6,7,8), and making sure there is no coincidence.

3. k.paired <- sum(i.good & i.paired) is there to exclude paired permutations like the one above in the diagram, which are not derangements:

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
quelle
1
+1, but the formula for derangements with e should be only approximate, i.e. with not =.
amoeba says Reinstate Monica
1
+1, because this is a worthy and useful effort to understand and explain a solution. The explanation of the cross product looks incorrect: it merely computes the sum of squares of entries. In particular, 1 and 1 cannot possibly "cancel." The use of the cross product is inessential; it merely was the first, reasonably efficient way that came to mind for checking equality of two numerical vectors, which is its logical role in the algorithm. Don't confuse implementation with explanation!
whuber
@whuber Thank you. I really goofed off there. I'm not good at repetitive, indexed tasks... I knew there was something not right. Now it should be fixed.
Antoni Parellada