プログラミングのお題スレ Part4
■ このスレッドは過去ログ倉庫に格納されています
0803デフォルトの名無しさん
2014/08/24(日) 19:11:53.26ID:1ar9zXjoSqueak Smalltalk で。
49 * (1.0/(1 to: 49)) sum * 108 "=> 23703.9546504393 "
10000人で試行した場合、
50%の人がコンプするのに必要な金額は26136円。
最少額でのコンプは 9936円。もっとも金額がかかった人は71604円。
| N count stat sum size |
N := 10000.
count := (1 to: N) collect: [:idx |
| bag |
bag := Bag new.
[bag add: 49 atRandom. bag asSet size = 49] whileFalse.
bag size].
stat := count asBag sortedCounts.
sum := 0.
size := stat findFirst: [:kv | (sum := sum + kv key) > (N * 0.5)].
^{((stat first: size) collect: #value) max. count min. count max} * 108
"=> #(26136 9936 71604) "
■ このスレッドは過去ログ倉庫に格納されています