Мне трудно понять, как работает приведенный ниже код:
import random
for i in range(0, 100):
if not i % 15:
random.seed(1178741599)
print [i+1, "Fizz", "Buzz", "FizzBuzz"][random.randint(0,3)]
Я понимаю, что когда i
делится на 15
, random
будет использовать тот же seed
и, следовательно, randint(0, 3)
всегда будет возвращать один и тот же индекс, но когда я попытался
for i in range(100):
random.seed(1178741599)
print random.randint(0,3) #always print 0
приведенный выше код всегда печатает 0
, не должно ли это быть (это правильное поведение и соответствует 3
(как индекс "FizzBuzz"
в списке [i+1, "Fizz", "Buzz", "FizzBuzz"]
?i+1
в списке.)
А что если i
делится на 3
или 5
?
В чем магия семени 1178741599
?
Изменить: как указал jonrsharpe, код fizzbuzz работает только в python 2.x.