TGViewer
Python Community Python Community @python_community_ru · 11.6K subscribers
Post #2933 955
‍🖥 Малоизвестный факт о Python random.seed(), который может поломать ваш код

Документация создаёт впечатление, что любое целое число просто используется как seed (это “начальная точка” для генератора случайных чисел.).

Но Python перед использованием просто берёт абсолютное значение.

То есть:

➡️ seed(3) и seed(-3) - порождают один и тот же поток случайных чисел.

Это значит, что разные seed не всегда дают разные последовательности -

Python гарантирует только обратное: одинаковый seed → одинаковые числа.

Почему так?
В исходниках CPython есть строка, которая буквально делает:

seed = abs(seed)

И знак просто теряется, хотя алгоритм случайных чисел мог бы учитывать его.

🧠 Вывод:

Не используйте небольшие вариации seed (например 5 и -5) как способ получить разные потоки случайностей — это небезопасно.
Если вам нужны независимые RNG — создавайте их явно, а не полагаясь на “умные” seed.

[1] https://docs.python.org/3/library/random.html
[2] https://github.com/python/cpython/blob/main/Modules/_randommodule.c#L321C13-L321C30

@Python_Community_ru
  • 🔥 2
More from @python_community_ru
  1. Oct 2, 2026webAI выпустила TwIL-LM3-Pro - компактную модель на 3,66B параметров специально для формал…
  2. Oct 1, 2026🔥 Бесплатный курс по Claude Code на русском: от установки до команды агентов На GitHub вы…
  3. Sep 30, 2026🖥 Cayu - open-source runtime для долгоживущих ИИ-агентов на Python Проект закрывает инфра…
  4. Sep 29, 2026🖥 Примеры кода на Python 2026: лучшие практики, разбор и задачи с решениями Python пример…
  5. Sep 28, 2026🚀 Jina-OCR-v1 разбирает целые страницы в Markdown со скоростью 2,57 страницы/с Jina AI пр…
  6. Sep 27, 2026🐍 В Python 3.15 решили мягко «похоронить» re.match() re.match() никуда не удаляют, но для…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →