Q:10種類のおみくじ(それぞれ無限大数入っている)で、10種類、全てを引くのに要する回数の期待値は?
ガチャガチャでも、野球カードでも何でもいいです。10種類のcharacterがあって、全て揃うには、いくら注ぎ込まなければならないか?ということです。
そして、N種類の場合は?
import sys import random def isCompleted(xs): b = True for x in xs: b = b and x if not b: return False return True def experiment(N): count = 0 xs = [False for x in range(N)] while not isCompleted(xs): xs[random.randint(0, N - 1)] = True count += 1 return count assert not isCompleted([False]) assert isCompleted([True, True]) assert not isCompleted([True, False]) N = 10 print experiment(N) sum = 0.0 trial = int(sys.argv[1]) for i in range (trial): sum += experiment(N) print sum / trial実行結果
[nori@shinano]~/Desktop/study/python% python lotto.py 10000 46 29.1639よさげ。ただ収束が非常に遅い。
2 件のコメント:
有限個の場合は?
そうねぇ、気が向いたら。
コメントを投稿