Xác suất mà sự sắp xếp của ông già Noel sẽ dẫn đến những cặp đôi hoàn hảo


11

Vì vậy, chúng tôi đã có Secret Santa tại nơi làm việc.

Chúng tôi có 8 người. Chúng tôi thay phiên nhau và rút một mảnh giấy nhỏ từ một cái bát có tên trên đó. Quy tắc duy nhất: Nếu bạn kéo tên của mình, bạn phải đặt lại mảnh giấy vào bát và thử lại.

Chúng ta hãy gọi những người A, B, C, D, E, F, G, H, đó cũng là thứ tự họ chọn mảnh giấy của họ.

Chúng tôi đã trao đổi quà tặng tối qua.

A là ông già bí mật của F.
B là ông già bí mật của E.
C là ông già bí mật của D.
D là santa bí mật của C.
E là ông già bí mật của B.
F là ông già bí mật của A.
G là ông già bí mật của H.
H là ông già bí mật của G.

Xem những gì đã xảy ra? Chúng tôi làm vợ chồng.

A và F là ông già bí mật của nhau.
B và E là ông già bí mật của nhau.
C và D là santa bí mật của nhau.
G và H là ông già bí mật của nhau.

Xác suất của điều này xảy ra là gì và làm thế nào để bạn tính toán nó?


1
"Nếu bạn kéo tên của mình, bạn phải đặt lại mảnh giấy vào bát và thử lại." Điều gì xảy ra nếu bạn là người cuối cùng chọn và lấy tên của chính mình?
Juho Kokkala

Nếu người A vẽ nhãn C (nói), và sau đó người B vẽ nhãn B, thì người A cũng đặt nhãn C lại vào mũ và vẽ lại? Đây là những gì câu trả lời dường như ngụ ý, nhưng tôi hiểu từ ngữ có nghĩa là A giữ nhãn C và B vẽ lại từ chiếc mũ có chứa nhãn (A, B, D, E, F, G, H).
Juho Kokkala

Câu trả lời:


14

Tổng số bài tập giữa người, trong đó không ai được chỉ định cho mình, là (Chúng được gọi là derangements .) Giá trị rất gần với .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

Nếu chúng tương ứng với các cặp hoàn hảo, thì chúng là một sản phẩm của sự hoán vị rời rạc . Điều này ngụ ý cấu trúc chu kỳ của chúng có dạng

(a11a12)(a21a22)(an1an2).

Số lượng các mẫu khác nhau như vậy là thứ tự của nhóm tất cả các hoán vị của các tên chia cho thứ tự của bộ ổn định của mẫu. Một phần tử ổn định có thể hoán đổi bất kỳ số lượng của các cặp và nó cũng có thể hoán vịcặp, cócác yếu tố ổn định. Do đó cón ! 2 n n !2nn!2nn!

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

cặp như vậy.

Vì tất cả các cặp đôi hoàn hảo như vậy là loạn trí, và tất cả các biến động đều có khả năng như nhau, cơ hội bằng

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

Do đó, đối với người, câu trả lời chính xác là trong khi xấp xỉ là : họ đồng ý với năm con số quan trọng.15 / 2119 0,00707881 e / ( 2 42n=815/21190.00707881e/(244!)0.00707886


Để kiểm tra, Rmô phỏng này rút ra một triệu hoán vị ngẫu nhiên của tám đối tượng, chỉ giữ lại những vật thể gây nhiễu và đếm những thứ đó là cặp đôi hoàn hảo. Nó đưa ra ước tính của nó, sai số chuẩn của ước tính và điểm Z để so sánh với giá trị lý thuyết. Đầu ra của nó là

       p.hat           se            Z 
 0.006981031  0.000137385 -0.711721705

Điểm Z nhỏ phù hợp với giá trị lý thuyết. (Những kết quả này sẽ phù hợp với bất kỳ giá trị lý thuyết nào trong khoảng từ đến .)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 cho khuôn mặt gấu trúc ngớ ngẩn và cặp kính ... Tôi đã chọn một chút phím tắt về khái niệm "yếu tố ổn định" bởi vì tôi không biết bắt đầu tìm kiếm nó ở đâu, nhưng nó rất có ý nghĩa ngay cả khi lấy bit đó bằng trực giác.
Antoni Parellada

@Antoni Xem en.wikipedia.org/wiki/Burnside's_lemma chẳng hạn.
whuber

1
@Amoeba Tôi đã từng nghĩ sẽ làm điều đó nhưng quyết định tập trung vào vấn đề hiện tại, vì những vụ lộn xộn quá nổi tiếng. Bài viết Wikipedia tôi liên kết để cung cấp một số phương pháp dẫn xuất công thức này. Phương pháp rõ ràng nhất sử dụng Nguyên tắc loại trừ bao gồm, như thể hiện rõ trong biểu thức tổng xen kẽ.
whuber

1
Bạn có cho rằng bản vẽ nhãn được bắt đầu từ đầu nếu ai đó vẽ nhãn của chính mình (xem ý kiến ​​của tôi cho câu hỏi). Mặt khác, tôi không nghĩ rằng tất cả các sự hư hỏng đều có khả năng như nhau.
Juho Kokkala

1
@Juho Đó là một câu hỏi hay, đáng để suy nghĩ thêm. Tôi đã trả lời dựa trên ý định ngầm định của quy trình vẽ, đó là tạo ra tất cả các biến động với xác suất bằng nhau, nhưng không rõ chính xác thủ tục nào được thực hiện hoặc liệu nó có tạo ra các biến dạng với phân phối đồng đều không (hoặc liệu nó có thậm chí đảm bảo để thành công trong việc tạo ra một sự hư hỏng!).
whuber

7

Tôi khá ấn tượng bởi sự tao nhã trong câu trả lời @whuber. Thành thật mà nói, tôi đã phải làm quen với các khái niệm mới để làm theo các bước trong giải pháp của mình. Sau khi dành nhiều thời gian cho nó, tôi đã quyết định đăng những gì tôi nhận được. Vì vậy, những gì sau đây là một lưu ý cho phản ứng đã được chấp nhận của mình. Theo cách này, không có nỗ lực nào về tính nguyên bản và mục tiêu duy nhất của tôi là cung cấp một số điểm neo bổ sung để thực hiện theo một số bước liên quan.

Vì vậy, ở đây nó đi ...

1. Tại sao ? 2nChà, điều này có thể quá cơ bản: chúng ta cần một số lượng người chẵn để chơi trò chơi.

2. Chúng ta có thể rút ra công thức cho sự loạn trí không?

Sau khi nhập với ví dụ dựa trên Wikipedia phù hợp với con người và mũ , mũ để được chính xác, chúng tôi có các tùy chọn cho người đầu tiên nhặt một chiếc mũ được trình bày ở đây như sau:n

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

=nd(n2)d(n2)+nd(n1)d(n1) , có thể được tổ chức lại thành:

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

Bây giờ nhận thấy sự song song giữa LHS của phương trình này và phần trên RHS trong ngoặc, chúng ta có thể tiếp tục đệ quy:

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

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

Điều này ngụ ý rằng .d(n)=nd(n1)+(1)n

Làm việc ngược:

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)

Vì vậy, nói chung,

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

Và ghi nhớ chuỗi Taylor của đánh giá tại :exx=1

d(n)n!e

3. Phân biệt chuyển vị : Khái niệm hoán vị rất dễ nhận được từ liên kết được cung cấp trong câu trả lời ban đầu , nhưng "không liên quan" thì rõ ràng hơn một chút. Nhìn vào một ví dụ, từ tập , hoán vị có thể được biểu diễn dưới dạng một chu kỳ như : , nhưng tạo thành một vòng lặp lên chính nó - một chu kỳ rời rạc. Hoặc, đặt hai chu kỳ này lại với nhau, hoán vị có thể được biểu thị dưới dạng sản phẩm .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)

Trong câu hỏi của ông già Noel (tám nhân viên tình cờ đã vẽ tên theo cặp hoàn hảo: Anna tặng Martha một món quà, trong khi Martha đã vẽ tên của Anna) sẽ có vòng khép kín.4

4. Để tìm số vòng lặp hai phần tử, chúng ta cần chia tất cả các hoán vị có thể cótrong số tám ( ) người bằng tổng số lần hoán đổi có thể có của hai yếu tố và tổng số hoán vị của các cặp: .(2n)!2n2nn!p(2n)=(2n)!2nn!


Đối với Rmô phỏng:

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

Hàm này hiểu rõ x[x]: Có nghĩa là đánh giá một vectơ phần tử đại diện cho các bài tập hiện tại và xác định xem nó có bao gồm các vòng lặp 2 phần tử hay không, như trong bài toán Santa Claus. Miễn là các hoán vị tương ứng với các yếu tố hoán vị sao cho nếu Paul phải tặng quà cho Maria ( và ngược lại, ) và Max cho John ( / ) ban đầu, việc hoán vị kết quả sẽ dẫn đến việc ghép đôi hoàn hảo mới ( / và / ) chúng tôi đang đáp ứng điều kiện ban đầu của việc ghép đôi hoàn hảo: 8Paul -> MariaMaria -> PaulMax -> JohnJohn -> MaxMax -> MariaMaria -> MaxPaul -> JohnJohn -> Paulnhập mô tả hình ảnh ở đây

Nói cách khác, nếu chúng ta quay lại ví dụ về những chiếc mũ trong Wikipedia, người ta i luôn lấy lại chiếc mũ .1

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

Hàm này đánh giá xem chúng ta có đang xử lý sự biến dạng hay không bằng cách so sánh phần tử vectơ khôn ngoan với vectơ và đảm bảo không có sự trùng hợp ngẫu nhiên.( 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) có loại trừ các hoán vị được ghép nối giống như ở trên trong sơ đồ, không phải là biến dạng:

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, nhưng công thức cho Loạn với nên chỉ gần đúng, tức là với không . =e=
amip nói phục hồi Monica

1
+1, bởi vì đây là một nỗ lực xứng đáng và hữu ích để hiểu và giải thích một giải pháp. Giải thích về sản phẩm chéo có vẻ không chính xác: nó chỉ tính tổng bình phương của các mục. Cụ thể, và không thể "hủy bỏ". Việc sử dụng các sản phẩm chéo là không cần thiết; nó chỉ là cách đầu tiên, hiệu quả hợp lý xuất hiện trong đầu để kiểm tra sự bằng nhau của hai vectơ số, đó là vai trò logic của nó trong thuật toán. Đừng nhầm lẫn giữa thực hiện với lời giải thích! - 111
whuber

@whuber Cảm ơn bạn. Tôi thực sự ngớ ngẩn ở đó. Tôi không giỏi trong các nhiệm vụ lặp đi lặp lại, được lập chỉ mục ... Tôi biết có điều gì đó không đúng. Bây giờ nó sẽ được sửa chữa.
Antoni Parellada
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.