テレビを見ていて考えた問題

 29人が47都道府県から一斉にめいめい適当な県を選ぶ。みんなが一斉にオープンして、他の人と重複していたら、重複した人すべてが脱落する。いま、9人が脱落した。このようなことが起こる確率は?また、9人以上が脱落する確率は?

 自分で作った問題にトラップされてしまった。これは意外と難しいのではなかろうか。
47種類から29種類を重複を許して取り出す方法は47H29通り。そこまではいいのだが、取り出されたものから重複しているのが何通りか(もしくは独立しているのが何通りか)という部分は難しいような・・・。
 
 また、Rでのシミュレーションもビミョーに面倒くさい。選ばせるまでは簡単なのだが・・・

x=sample(c(1:47),29,replace=T)

ベクトル内の他の要素と重複していた場合に「それらの要素の両方を抜く」という操作ができない。普通のコマンドでは重複した人の両方を抜く、ということができないのだ。いったいどうすればいいのだろう。謎だ。

(4/12追記)シミュレーションはこれでいいような・・・

y=NULL
r=5000
for(i in 1:r){
x=sample(c(1:47),29,replace=T)
xx=setdiff(x,x[duplicated(x)]) # 他と重なっていない要素を取り出す
n=29-length(xx) #脱落数
y=c(y,n)
}
hist(y,nclass=20) #ヒストグラム
length(y[y==9])/r # 9人が脱落する確率
length(y[y<=9])/r # 9人以下が脱落する確率

[1] 0.0396
[1] 0.1112
ぴったり9人脱落する確率は4%。
9人以下に偏る確率は約11%。