Đặt . Quan sát rằng phân phối của điều kiện trên là đa phương thức (bài tập). Điều này cho phép một cách khái niệm dễ dàng hơn để suy nghĩ về các vấn đề- bạn có hộp và ném bóng trong họ một cách ngẫu nhiên. Xác suất mà trống là gì?Y:=X1+…+Xn(X1,…,Xn)Y=tntk
Vâng, trước hết, có cách ném các bóng trong hộp không có giới hạn.nttn
Bây giờ nó phức tạp hơn một chút, mặc dù chúng tôi chỉ đang đếm các công cụ. Có cách chọn hộp để trống. Chúng tôi sau đó còn lại với các quả bóng để ném vào các hộp còn lại, sao cho mỗi hộp không trống. Bạn có thể thực hiện việc này bằng cách đưa vào / loại trừ, giống như trong bằng chứng về số Stirling /math/550256/stirling-numbers-of-second-type .(nk)ktn−k
Kết hợp các thành phần này sẽ cho xác suất mong muốn,
, .
1nt(nk)∑j=0n−k(−1)n−k−j(n−kj)jt,
t≥n−kn≥k
Lưu ý rằng không có trong câu trả lời.λ
Không có hứng thú và như một bài tập nhanh, tôi đã mã hóa điều này (mượn hàm số Stirling tôi tìm thấy với Google) để xem câu trả lời trông như thế nào:
##-- Stirling numbers of the 2nd kind
##-- (Abramowitz/Stegun: 24,1,4 (p. 824-5 ; Table 24.4, p.835)
##> S^{(m)}_n = number of ways of partitioning a set of $n$ elements into $m$
##> non-empty subsets
Stirling2 <- function(n,m)
{
## Purpose: Stirling Numbers of the 2-nd kind
## S^{(m)}_n = number of ways of partitioning a set of
## $n$ elements into $m$ non-empty subsets
## Author: Martin Maechler, Date: May 28 1992, 23:42
## ----------------------------------------------------------------
## Abramowitz/Stegun: 24,1,4 (p. 824-5 ; Table 24.4, p.835)
## Closed Form : p.824 "C."
## ----------------------------------------------------------------
if (0 > m || m > n) stop("'m' must be in 0..n !")
k <- 0:m
sig <- rep(c(1,-1)*(-1)^m, length= m+1)# 1 for m=0; -1 1 (m=1)
## The following gives rounding errors for (25,5) :
## r <- sum( sig * k^n /(gamma(k+1)*gamma(m+1-k)) )
ga <- gamma(k+1)
round(sum( sig * k^n /(ga * rev(ga))))
}
pmf<-function(n,t,k) {
if (t >= (n-k) & n >= k) {
(choose(n,k) * factorial(n-k) * Stirling2(t,n-k) )/(n^t)
} else {
0
}
}
lambda <- 1
n <- 10
reps <- 500000
set.seed(2017)
X <- matrix(ncol=n,nrow=reps,data=rpois(n*reps,lambda))
K <- apply(X, 1,function(x){sum(x == 0)})
hist(K)
# restrict only to those that sum to t
Y<-rowSums(X)
t<-8
G<- (Y == t)
sum(G)
k <- 5
#head(X[which(K==k),])
#head(Y[which(K==k)])
#head(X[G,])
#head(Y[G])
posskvalues <- (n-t):n
nk <- length(posskvalues)
empP <- numeric(nk)
thP <- numeric(nk)
for(i in 1:nk) {
k <- posskvalues[i]
# sum(K[G] == k)
empP[i] <- sum(K[G] == k)/sum(G)
thP[i] <- pmf(n,t,k)
}
plot(posskvalues,empP,main=paste("n=",n,", t=",t))
points(posskvalues,thP,pch="x")