[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/12 09:58 / Filesize : 320 KB / Number-of Response : 1058
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

分からない問題はここに書いてね464



977 名前:132人目の素数さん mailto:sage [2020/12/18(金) 09:51:56.34 ID:zWAuxkQC.net]
>>900
プログラムをrefineして(嘘、実はdebug)n=10でやってみた。

sim <- function(n){ # n : number of players
p=vector('list',length=n) # probability list
p[[1]]=1
# p[[m]][[i]] probability of m players to i winners
for(m in 2:n){
k=1:(m-1)
p[[m]]=c(3^m-sum(3*choose(m,k)),3*choose(m,k))/3^m
}
counter=0 # play counter

# simulation of number of winners among n players
NW <- function(m){ # m:players -> (winners,junkens) till any winner
j=1
nw = sample(0:(m-1),1,prob=p[[m]]) # number of winners
while(nw==0){ # while no winner,repeats
j=j+1
nw=sample(0:(m-1),1,prob=p[[m]])
}
c(winner=nw,junkens=j) # (number of winners, total plays)
}
wj=NW(n)
if(wj[1]==1) return(wj[2]) # single winner at initial series
counter=wj[2]
while(wj[1]!=1){ # repeats till single winner determined
wj=NW(wj[1])
counter=counter+wj[2]
}
return(counter)
}

j10=mean(replicate(1e6,sim(10)))

> j10
[1] 24.34915

処理速度が遅いので100万回のシミュレーションの平均。

厳密解は
> 8327737507/342007190
[1] 24.3496
らしいので小数点3桁まで一致した。
厳密解が提示されたのでデバッグが捗った。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<320KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef