docs(trainer): план «Максимум разнообразия» (v4 дополнение)

ROADMAP_V4_VARIETY.md: (A) обозначение искомой величины answerSym — сделано +
добивка (Sₙ/стороны/единицы); (B) тема «Углы/Параллельные» — ≈12 новых генераторов
(накрест внешние, односторонние внешние, вертикальные при секущей, двухшаговые,
биссектриса, дополнительные, острые в прям. треугольнике, углы параллелограмма,
недостающий угол n-угольника, накрест через выражения, углы в отношении, часы) +
новые фигуры; (C) пять осей разнообразия по всему тренажёру — форматы заданий
(новые kind), глубина внутри темы (прямая/обратная/словесная/многошаговая),
числовое разнообразие, визуальное (диаграммы/числовая прямая/таблицы + read-from-
figure), подача; (D) новые темы ЦТ; (E) последовательность волн.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-29 16:18:20 +03:00
parent 3b095a9fd3
commit 8610197f5f
+131
View File
@@ -0,0 +1,131 @@
# ИИ-Тренажёр — План «Максимум разнообразия» (v4, дополнение)
**Дата:** 2026-06-26. Дополняет `ROADMAP_V4.md` / `V4_GENERATOR_SPECS.md`. Фокус: ещё больше
разнообразия задач и **условий** — в теме «Углы/Параллельные» и по всему тренажёру.
**Контекст:** фаза V4.1 завершена — **178 генераторов** (было 64). Только что внедрено
**обозначение искомой величины** (`answerSym`: P/S/C/L/d/k/n/q/b вместо жёсткого «x») —
и в поле ввода, и в подписи ответа, и в шагах решения.
**Инварианты (неизменны):** только `SimExpr` (⛔ без `eval`); «корень-вперёд» → чистый ответ;
⛔ без эмодзи; тексты экранируются; зарезерв. имена SimExpr `pi/e/E/PI/tau` (в тренажёре `t/w/h`
допустимы). Каждая волна — смоук + коммит.
---
## A. Обозначение искомой величины (`answerSym`) — СДЕЛАНО + добивка
Сделано (commit 3b095a9): 26 генераторов размечены P/S/C/L/d/k/n/q/b; движок подменяет `x`→символ
в шагах решения; страница показывает «P =»/«S =» в вводе и ответе.
**Добивка (низкая цена):**
- A1. Суммы прогрессий → **Sₙ** (prog-arith-sum/geom-sum/arith-word); проценты-вклад → итог.
- A2. Стороны/катеты/радиусы как искомые → **a/b/c/r** (pyth-hyp→c, pyth-leg→b, area-rect-inverse→
сторона a). Сейчас у них «x».
- A3. **Единицы измерения** (опц.): поле `unit` («см», «°», «км/ч») → суффикс в подписи ответа и
плейсхолдере; чисто отображение, проверка не меняется.
- A4. Многобуквенные/индексы (x₁, a₁) — только если понадобится; `answerSym` уже принимает строку.
---
## B. Тема «Углы / Параллельные» — максимум разнообразия (≈12 новых)
Сейчас 9: третий угол, смежный, внешний, соответственные, накрест лежащие, односторонние,
найти x, равнобедренный, вертикальные. Добавить:
| id | Что | Ответ | Фигура |
|---|---|---|---|
| `ang-alt-exterior` | накрест лежащие ВНЕШНИЕ | a | parallel-lines-transversal (rel) |
| `ang-coint-exterior` | односторонние ВНЕШНИЕ | 180a | parallel-lines-transversal |
| `ang-vertical-transversal` | вертикальные ПРИ секущей | a | parallel-lines-transversal |
| `ang-parallel-twostep` | секущая → смежный к накрест лежащему (2 шага) | 180a | parallel-lines-transversal |
| `ang-bisector` | биссектриса делит угол пополам | a/2 | новый `angle-bisector` |
| `ang-complementary` | дополнительные (сумма 90°) | 90−a | новый `complementary` |
| `ang-right-acute` | острые углы прям. треугольника (90a) | 90a | right-triangle (метка угла) |
| `ang-parallelogram` | углы параллелограмма (сосед = 180a) | 180a / a | parallelogram (метка углов) |
| `ang-polygon-missing` | n-угольник: известны все углы, кроме одного | 180(n2)−Σ | regular-polygon |
| `ang-alt-solve` | накрест лежащие заданы выражениями, найти x | root | parallel-lines-transversal |
| `ang-triangle-ratio` | углы треугольника в отношении p:q:r, найти больший | 180·max/(p+q+r) | triangle-angles |
| `ang-clock` | угол между стрелками часов в HH:00 | \|30·H0\| | новый `clock` (циферблат) |
Все «корень-вперёд» (берём a/острый угол/доли первым → выводим показанное). Новые фигуры:
`angle-bisector`, `complementary` (два луча из O + дуги), `clock` (круг + 2 стрелки), метки углов
на `parallelogram`/`right-triangle` (расширение существующих типов, как делали с rectangle).
---
## C. Оси разнообразия — по ВСЕМУ тренажёру
Разнообразие = произведение пяти осей. По каждой — что добавить.
### C1. Новые ФОРМАТЫ заданий (новые `kind`) — крупнейший множитель
(Из ROADMAP_V4, направление «task-formats» — это фаза V4.2.)
Применимы к ЛЮБОЙ теме, поэтому дают ×N разнообразия одним движком-усилием:
- **`choice`** — выбор из 4 (дистракторы из `analyzeMistake`: типовые ошибки).
- **`verify`** — «верно ли?» (булева SimExpr → 1/0).
- **`findError`** — найди неверный шаг в готовом решении (портим один шаг `solution[]`).
- **`fillBlank`** — вставь число/выражение в тождество.
- **`estimate`** — ответ в допуске (прикидка, π).
- **`multi`** — одна задача, несколько проверяемых под-ответов по цепочке.
- **`order`** — упорядочить (числа/дроби/шаги).
- **`match`** — сопоставить (формула↔результат, фигура↔площадь).
- **`context`** — обёртка существующих compute в бытовые сюжеты (данными).
- **`figureAsk`/таблица** — ответ читается с чертежа/таблицы.
### C2. Глубина ВНУТРИ темы (под-варианты и формулировки)
Для каждой темы — четыре направления формулировки:
- **Прямая** (дано→найди) — есть.
- **Обратная** (найди параметр по ответу) — частично (find-b/d/n/q, restore-before). Расширить
на ВСЕ темы: «при каком a корень = R», «найди сторону по периметру», «найди r по длине».
- **Словесная/контекст** — расширить (движение/работа/смеси/деньги/геометрия-в-жизни).
- **Многошаговая** — связать два факта (Пифагор→периметр уже есть; угловые цепочки; %→%).
### C3. Числовое разнообразие (тип ответа/чисел)
Сейчас алгебра — почти всегда целые. Добавить варианты:
- **Дробные/десятичные корни** там, где уместно (через «корень-вперёд» с делителями).
- **Отрицательные** коэффициенты/корни шире (уже частично).
- **Иррациональные «через √»** (ответ вида `k√m`) — ТРЕБУЕТ нового механизма проверки (сейчас
движок численный; ответ `2*sqrt(3)` примется, но эталон-строка иная) → пометка на отдельную фазу.
- **Ответ-дробь/отношение** (k:1, 3/4) — есть в дробях; распространить (вероятность, проценты).
### C4. Визуальное разнообразие (фигуры)
- Дать чертёж БОЛЬШЕМУ числу задач (не только геометрия): числовая прямая (отрицательные/дроби),
столбчатые/круговые мини-диаграммы (проценты/доли), таблица (чтение данных), график (функции).
- Везде, где есть фигура, включить **режим «читать с чертежа»** (`figurePrompt`) — уже есть в
геометрии; добавить figurePrompt новым фигурным задачам.
- Новые типы фигур из B + диаграммы (C4) переиспользуют хелперы `figures.js`.
### C5. Разнообразие ПОДАЧИ (не меняя математику)
- **Рандомизация имён/контекста** в текстовых (имена, предметы, валюта) — данными.
- **Разные формулировки одного навыка** (вопрос «найдите»/«чему равно»/«определите»).
- **Уровни как СТРУКТУРА** (уже есть `level` 1–3) — добить разметку новых генераторов.
---
## D. Новые ТЕМЫ (охват ЦТ/ЦЭ) — из ROADMAP_V4, кратко
`g-func` (чтение графика), `roots` (корни/иррациональности), `logs`, `trig` (особые углы),
`g-coord` (координатная геометрия), вероятность/статистика. Каждая = новый пласт разнообразия.
---
## E. Рекомендуемая последовательность
1. **A-добивка** (символы Sₙ/сторон/единицы) — мелко, сразу. ✦ дешёвый, видимый эффект.
2. **B — углы/параллельные** (≈12 генераторов + 3–4 фигуры) — закрывает запрос по теме. ★
3. **C1 — форматы заданий** (V4.2: choice→verify→fillBlank→findError→estimate→multi→order→match→
context→figureAsk) — крупнейший прирост разнообразия; правки движка+страницы+смоуки.
4. **C2/C3 — обратные/словесные/многошаговые + числовые варианты** волнами по темам.
5. **C4 — диаграммы/числовая прямая/таблицы** + read-from-figure на новых задачах.
6. **D — новые темы ЦТ**.
Каждая волна: смоук движка (инстанс всех генераторов + самопроверка + рендер фигур) + смоук
страницы (где менялась) + коммит; эмодзи/eval = 0.
---
## Приложение — где что
- Генераторы: `frontend/js/trainer/generators.js` (178 шт; поля figure/figurePrompt/answerSym).
- Движок/kinds/answerSym-подмена: `frontend/js/trainer/_trainer_engine.js`.
- Фигуры-данные: `frontend/js/trainer/figures.js` (13 базовых + 10 геом-типов V4.1).
- Страница (eqx-префикс/answerLabel/режим чертежа): `frontend/trainer.html`.
- Базовый план/спеки: `ROADMAP_V4.md`, `V4_GENERATOR_SPECS.md`.