Я пишу скрипт python, чтобы узнать некоторые вещи о рандомизации.randint() непредвиденное поведение
У меня есть следующий код:
from random import randint
one = 0
two = 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):
one += 1
else:
two += 1
counter+=1
if (one > two):
diff = one - two
else:
diff = two - one
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, the max difference found is %d" % (olddiff)
print "Sum of the differences is %d" % (sumdiff)
print "The average difference is %d" % (avgdiff)
Однако я получаю этот неожиданный результат:
Первая попытка:
Occurences of 1: 262
Occurences of 2: 238
After 500000 calculations, the max difference found is 24
Sum of the differences is 24000
The average difference is 24
Вторая попытка:
Occurences of 1: 247
Occurences of 2: 253
After 500000 calculations, the max difference found is 6
Sum of the differences is 3000000
The average difference is 6
Третий попробуйте:
Occurences of 1: 252
Occurences of 2: 248
After 500000 calculations, the max difference found is 4
Sum of the differences is 2000000
The average difference is 4
Etc ...
В 50 раз я запустить его, никогда нет разницы между максимальной разницей и средней разностью. Это также каждый раз, когда текущая разница.
Есть ли что-то не в порядке с моим кодом или это ожидается из-за механизмов функции randint()?
Привет, Martijn, Извините, этого не было. Я пересмотрел сценарий и увидел, в чем проблема, поэтому я удалил вопрос, не обновляя страницу! Извинения! – Midas