{"schemaVersion":1,"record":{"key":"lesson/controlled-randomness","type":"lesson","id":"controlled-randomness","lang":"ru","title":"Случайность и неудачные серии","summary":"Отличаем среднюю вероятность от опыта короткой сессии и выбираем, нужны ли игре ограничения на серии исходов.","updatedAt":"2026-10-20","status":"active","url":"https://gamemechanics.pro/ru/lessons/controlled-randomness/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/lesson/controlled-randomness.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/lesson/controlled-randomness.md","aliases":["seed","сид","rng","вероятность"],"tags":["balance","probability","testing"],"sourceIds":["source-a545884312cd1d9f","source-de02a17640cd2ba9"],"sources":[{"id":"source-a545884312cd1d9f","title":"Ian Schreiber: Level 4, Probability and Randomness","url":"https://gamebalanceconcepts.wordpress.com/2010/07/28/level-4-probability-and-randomness/","verifiedAt":null},{"id":"source-de02a17640cd2ba9","title":"Ian Schreiber: Level 5, Probability and Randomness Gone Horribly Wrong","url":"https://gamebalanceconcepts.wordpress.com/2010/08/04/level-5-probability-and-randomness-gone-horribly-wrong/","verifiedAt":null}],"sections":[{"id":"prerequisites","title":"Что нужно знать","body":"Награда с вероятностью 25% не обязана появляться раз в четыре попытки. Короткая сессия может сильно отличаться от среднего по большому числу запусков."},{"id":"principle","title":"Принцип","body":"До реализации назовите событие, вероятность и зависимость между попытками. [Курс Game Balance Concepts](https://gamebalanceconcepts.wordpress.com/2010/07/28/level-4-probability-and-randomness/) помогает различать вероятностную модель и отдельный исход. Если меняете распределение ради игрового опыта, меняйте и описание правила.\n\nНезависимые броски подходят не каждой задаче. Можно ограничить серию неудач, но тогда следующий исход зависит от истории. Такой выбор не становится автоматически справедливым: нужно определить, для кого и какое поведение важно.\n\n<span id=\"пример-батареи-для-экспедиции\"></span>"},{"id":"example","title":"Практический пример","body":"### Батареи для экспедиции\n\nВ учебной модели каждый ящик независимо содержит батарею с вероятностью 0,25. За пять ящиков ожидаемое количество батарей равно `5 × 0,25 = 1,25`. Вероятность не найти ни одной равна `0,75^5 ≈ 23,73%`. Среднее больше единицы совместимо с заметным риском остаться без батарей.\n\nАльтернатива: перемешивать мешок из четырёх жетонов, где один означает батарею. Каждый полный мешок даст ровно одну. Порядок случаен, исходы зависимы. Между батареей в начале одного мешка и в конце следующего возможны шесть пустых ящиков подряд. Мешок из четырёх не гарантирует награду в любом скользящем окне из четырёх попыток.\n\nЕсли батарея обязательна для завершения уровня, отдельно предусмотрите восстановление после плохого исхода. Гарантия или запасной путь изменяют дизайн, а не только генератор чисел."},{"id":"mistakes","title":"Частые ошибки","body":"- Проверять 25% на четырёх бросках и объявлять генератор сломанным.\n- Считать зависимые исходы по формуле независимых.\n- Сохранять только seed (начальное значение генератора), забыв сохранить порядок обращений к генератору."},{"id":"checks","title":"Проверка результата","body":"1. Пересчитайте вероятность пустой серии аналитически.\n2. В симуляции запишите частоту наград и распределение длины серий, а не только среднее.\n3. Для мешка проверьте все позиции единственной батареи в двух соседних мешках.\n4. Сохраняйте seed, версию алгоритма и последовательность событий для повтора ошибки."},{"id":"agent-task","title":"Задание для ИИ-агента","body":"> Сравни независимые броски и мешок на одинаковом числе ящиков. Покажи исходные допущения, воспроизводимый запуск и худшую возможную серию для мешка. Не подменяй расчёт гарантии результатом случайной симуляции.\n\nПроверьте выбор в [«Окне погоды»](/ru/practice/#weather-window) и через призму [«Случайность»](/ru/lenses/#schell-036)."}],"relations":[{"type":"requires","direction":"outgoing","label":"Перед началом","key":"lesson/choice-cost","title":"Цена выбора и полезность вариантов","url":"https://gamemechanics.pro/ru/lessons/choice-cost/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/lesson/choice-cost.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/lesson/choice-cost.md"},{"type":"requires","direction":"incoming","label":"Продолжить изучение","key":"lesson/progression-pacing","title":"Прогрессия: рост возможностей и темп","url":"https://gamemechanics.pro/ru/lessons/progression-pacing/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/lesson/progression-pacing.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/lesson/progression-pacing.md"},{"type":"explains","direction":"outgoing","label":"Применение принципа","key":"mechanic/rpg-grind--rarity-hunting","title":"Охота за редкостью","url":"https://gamemechanics.pro/ru/knowledge/mechanic/rpg-grind--rarity-hunting/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/mechanic/rpg-grind--rarity-hunting.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/mechanic/rpg-grind--rarity-hunting.md"},{"type":"practices","direction":"outgoing","label":"Применить на практике","key":"practice/three-workshop-shifts","title":"Три смены мастерской","url":"https://gamemechanics.pro/ru/knowledge/practice/three-workshop-shifts/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/practice/three-workshop-shifts.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/practice/three-workshop-shifts.md"},{"type":"practices","direction":"outgoing","label":"Применить на практике","key":"practice/weather-window","title":"Окно погоды","url":"https://gamemechanics.pro/ru/knowledge/practice/weather-window/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/practice/weather-window.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/practice/weather-window.md"},{"type":"reviews","direction":"outgoing","label":"Проверить через призму","key":"lens/schell-036","title":"Случайность","url":"https://gamemechanics.pro/ru/knowledge/lens/schell-036/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/lens/schell-036.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/lens/schell-036.md"},{"type":"contains","direction":"incoming","label":"Учебные маршруты","key":"path/balance","title":"Баланс и прогрессия","url":"https://gamemechanics.pro/ru/learn/balance/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/path/balance.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/path/balance.md"}],"placements":[],"supersededBy":[],"attributes":{"category":"design","level":"intermediate","minutes":6},"endsAt":null,"provenance":"Авторский материал gamemechanics.pro. Учебные примеры требуют проверки в своём проекте.","license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"}}