Перейти к контенту
Как это работает

Правило, по которому выбирается следующий вес, выписанное целиком

Правило, по которому приложение предлагает следующий вес, выписанное целиком: это правило, а не модель.

Автор: Kiptly ·

На этой странице

Это правило, а не модель

Всё, что ниже, — несколько сравнений. Одни и те же входные данные всегда дают один и тот же ответ, ничто не подстраивается под вас, и никакой модели внутри нет. Именно поэтому правило можно выписать здесь целиком, а не описывать прилагательными.

У метода есть название, и оно не наше: двойная прогрессия. Вы остаётесь на одном весе и добавляете повторения внутри диапазона; дойдя до верхней границы, добавляете вес и возвращаетесь к нижней. Сначала повторения, потом вес. Это вся идея, а остальная страница — про краевые случаи.

Какую тренировку читает правило и какие подходы в ней

Одну — вашу последнюю на этом упражнении, а для правила отката ещё и предыдущую. Не среднее по истории и не линию тренда.

Внутри этой тренировки учитываются только подходы на самом тяжёлом рабочем весе. Если вы сделали 62,5 кг на 10, а потом два откатных подхода по 55 кг на 12, засчитывается один подход — тот, что на 62,5. Это важно в обе стороны: иначе откатные подходы читались бы как неудача, а их лёгкие повторения — что хуже — как доказательство, что вы заслужили больше веса.

Разминочные не учитываются никогда. Для работы совсем без веса — подходы с собственным весом, статические удержания — в расчёт идут все подходы: выбирать самый тяжёлый там просто не из чего.

С каким диапазоном сравнивают

Сначала с вашим собственным, если вы его задали, — отдельно для базовых и изолирующих упражнений. Если не задали — с тем, который подразумевает ваша цель: 8–12 для набора мышечной массы, 3–6 для роста силы, 12–15 для «оставаться в форме». Если нет и цели — 8–12.

Два из этих чисел стоит проговорить вслух, а не оставлять в коде. Для снижения жира взят тот же диапазон 8–12, что и для набора массы, и это сделано намеренно: данных о том, что «больше повторений сжигают жир», нет, а более лёгкая работа на высоких повторениях работает против сохранения мышц при дефиците — то есть против ровно того, что человеку на снижении веса важнее всего сохранить. А 12–15 для «оставаться в форме» — продуктовое решение о том, насколько пугающей должна быть первая тренировка, а не вывод из исследований. В исходнике это написано комментарием: позже на это число легко сослаться так, будто за ним стоит наука, и эта страница существует в том числе затем, чтобы так было труднее.

Каждая прошлая тренировка оценивается по тому диапазону, по которому она и шла, а не по сегодняшнему. Человеку, у кого в шаблоне прописано 5–8, а в профиле по умолчанию 8–12, когда-то предлагали откат за то, что он точно выполнял свою программу.

Четыре ответа, именно в таком порядке

Если прошлой тренировки нет или в ней нет веса — ответ «не знаю», и правило так и говорит, а не придумывает стартовый вес.

Если упражнение с противовесом — держать текущий вес. Правило добавляет нагрузку, а на гравитроне введённое число — это помощь: прибавка к нему сделала бы подход легче, выглядя при этом как усложнение.

Дальше — проверка на откат, она описана ниже. Дальше, если засчитанные подходы дошли до верхней границы диапазона, — один шаг вверх. Иначе — держать: оставаться здесь и набирать повторения.

«Дошли до верхней границы» по умолчанию означает все засчитанные подходы, и это можно ослабить: большинство из них или хотя бы один. Упражнение из трёх подходов с 12/12/9 пойдёт вверх при «большинстве» и останется на месте при значении по умолчанию. Проверка на откат эту настройку намеренно игнорирует: ослабить условие прибавки — не то же самое, что попросить не замечать, когда вы недобираете повторения.

Числа и где они лежат

Числа, на которые опирается эта страница, выписаны из API при сборке сайта. Три из них существуют в двух экземплярах — на сервере и в приложении, которое строит ваши разминочные подходы по своей копии той же сетки, — и сборка падает, если копии перестают совпадать.

Что этоЗначениеОткуда взято
На что откат умножает рабочий вес, до округления по сетке.0.9apps/api/src/smart/workout-plan.rules.ts
Пустой гриф, от которого отсчитывается вес в метрической сетке.20apps/api/src/smart/workout-plan.rules.tsapps/flutter/lib/features/workout/presentation/workout_provider.dart
Наименьший шаг в метрической сетке — пара блинов по 1,25 кг.2.5apps/api/src/smart/workout-plan.rules.tsapps/flutter/lib/features/workout/presentation/workout_provider.dart
Килограммов в фунте, с полной точностью — обе стороны обмена сходятся на этом числе.0.45359237apps/api/src/smart/workout-plan.rules.tsapps/flutter/lib/core/utils/weight_utils.dart
На сколько дней назад проверка разгрузки смотрит на ваши недели.56apps/api/src/smart/smart.service.ts
Сколько тяжёлых недель подряд нужно, чтобы была предложена лёгкая.4apps/api/src/smart/smart.service.ts

Веса, которые можно реально набрать

Любой рассчитанный вес округляется вниз по сетке, а не до ближайшего. «Вниз» — не вопрос вкуса: предложить вес, который вы ещё не заслужили, подрывает доверие к приложению так, как не подрывает его заниженный вес.

Сетка — гриф 20 кг и шаг 2,5 кг (наименьшая пара блинов по 1,25 кг), и округление происходит в той единице, которую вы читаете. В имперской системе это гриф 45 фунтов и шаг 5 фунтов, а на сервер уходит то, во что это переводится. Если округлять в килограммах, а переводить потом, читателю с фунтами достанутся 137,8 фунта — вес, который не собирается ни из каких блинов.

У тренажёров, блоков и гантелей грифа нет, поэтому их сетка начинается с нуля, — а цель меньше одного шага округляется не в ноль, а в «ничего»: «0 кг» в задании на подход хуже, чем отсутствие числа. Вместо него вы увидите «выберите вес на первом подходе».

Вторая разгрузка — неделя, а не вес

Всё сказанное выше — про одно упражнение. Есть вторая, полностью отдельная проверка, уже про вашу тренировочную неделю, и эти две могут расходиться, не будучи при этом неправыми.

Она смотрит на восемь недель назад и считает недели, в которых вы завершили хотя бы три тренировки. Четыре такие недели подряд — и приложение предложит лёгкую неделю; или три подряд, если в среднем у вас пять и больше тренировок в неделю. Предложение — это дата: ближайший понедельник. Никакие веса при этом не меняются, и ничто не заставляет вас её брать.

Текущая, незавершённая неделя в счёт не идёт. В понедельник в ней максимум одна тренировка, и прежняя версия обрывала на ней серию, сообщая «ноль недель подряд» человеку на середине его пятой тяжёлой недели.

Где это вообще видно

Карточка по упражнению, которая показывает предложение и называет причину, и недельная проверка разгрузки входят в платный тариф. Лучше написать это здесь, чем описывать экран, который большинство читателей открыть не смогут.

Само правило — нет. Та же функция задаёт веса, когда конструктор собирает тренировку и когда вы запускаете уже сохранённый план, и то и другое бесплатно, — так что числа, которые вы там видите, это именно те, о которых эта страница. Платная карточка добавляет к ним объяснение.

Источники

У каждого источника указано, насколько глубоко мы с ним работали. Список ссылок показывает, что работа существует, а не то, что её кто-то открывал, — поэтому здесь стоят пометки.

  1. Код, который это решает

    apps/api/src/smart/workout-plan.rules.ts и apps/api/src/smart/smart.service.ts. Все числа выше выписаны из этих файлов при сборке сайта, а семь участков кода, которые объясняет текст, хешируются — страница краснеет, когда код под ней сдвигается.

    Прочитано полностью

  2. Двойная прогрессия как общепринятый приём

    Не привязана к конкретной статье, и мы не будем делать вид, что привязана. Это распространённый способ работать с диапазоном повторений, и подходит он этому приложению по устройству, а не по науке: журнал тренировок содержит именно веса и повторения.

    Не прочитано

Общая информация о тренировках, не медицинская рекомендация.