読者です 読者をやめる 読者になる 読者になる

randomがどれくらい収束するのか試してみた

twitterで50枚のものから1枚を選ぶのを延々と繰り返した場合に、最も選ばれるものと最も選ばれない物とでどれくらい差が出るのかって話をしてたので試してみた。
ソースはこんなの。

import random

count_list = [0] * 50

for i in xrange(10000 * 100):
    count_list[random.randint(0,49)] += 1

結果は

>>> count_list.sort()
>>> count_list[0]
19642
>>> count_list[-1]
20243

試してみる前は最大と最小で2倍程度の差があるのかと思っていたのだが、実際は5%くらいしか差がなかった。

ちなみに最初何も考えずにrange()で1億回くらい実行してメモリが足りなくなったのは秘密。