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億回くらい実行してメモリが足りなくなったのは秘密。