python - randint() unexpected behavior -


i'm writing python script find out things randomization.

i have following code:

from random import randint  1 = 0 2 = 0  olddiff = 0 diff = 0  sumdiff = 0 avgdiff = 0  headcounter = 0 counter = 0   while (headcounter < 500000):     while (counter < 500):         x = randint(1,2)         if(x==1):             1 += 1         else:             2 += 1          counter+=1      if (one > two):         diff = 1 - 2     else:         diff = 2 - 1      sumdiff += diff      if(diff > olddiff):         olddiff = diff      headcounter +=1   avgdiff = sumdiff / 500000   print "occurences of 1: %d" % (one) print "occurences of 2: %d" % (two) print "after 500000 calculations, max difference found %d" % (olddiff) print "sum of differences %d" % (sumdiff) print "the average difference %d" % (avgdiff) 

i getting unexpected output:

first try:

occurences of 1: 262 occurences of 2: 238 after 500000 calculations, max difference found 24 sum of differences 24000 average difference 24 

second try:

occurences of 1: 247 occurences of 2: 253 after 500000 calculations, max difference found 6 sum of differences 3000000 average difference 6 

third try:

occurences of 1: 252 occurences of 2: 248 after 500000 calculations, max difference found 4 sum of differences 2000000 average difference 4 

etc...

in 50 times i've run it, there's never difference between max difference , average difference. every time current difference.

is there wrong code or expected because of mechanisms behind randint() function?

you never reset counter in loop, calculated one , two values once. other 499999 runs re-use same one , two counts, because while (counter < 500) condition remains false.

you can see effect in one , two counts; add 500.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -