From 2af560b7c4979aea058d3c9af01c0f445d0b2c1b Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Thu, 18 Jun 2026 21:34:53 +0300 Subject: [PATCH] =?UTF-8?q?feat(ctmath):=20=D0=BF=D1=80=D0=BE=D0=B1=D0=BD?= =?UTF-8?q?=D0=B8=D0=BA=20=D0=A0=D0=A2-2024/25=20=D0=AD=D1=82=D0=B0=D0=BF?= =?UTF-8?q?=20II=20=D0=92=D0=B0=D1=80=D0=B8=D0=B0=D0=BD=D1=82=201=20(varia?= =?UTF-8?q?nt=3D102)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Чистый 30-задачный пробник Этапа II (другой набор тем, чем Этап I: обратные тригфункции, логарифмы, производная, стереометрия). По 1 варианту на Этап (правило «без повторов»). 3 чертежа из PDF (параллельные прямые, панель из 5 графиков для y=|x|, график функции). KaTeX-рендер 30/30, self-сверка. Co-Authored-By: Claude Opus 4.8 (1M context) --- backend/scripts/seed_ctmath_rt2425_e2v1.js | 298 +++++++++++++++++++++ frontend/img/ct/math/rt2425_e2v1/a10.png | Bin 0 -> 4409 bytes frontend/img/ct/math/rt2425_e2v1/a2.png | Bin 0 -> 5981 bytes frontend/img/ct/math/rt2425_e2v1/a3.png | Bin 0 -> 20079 bytes 4 files changed, 298 insertions(+) create mode 100644 backend/scripts/seed_ctmath_rt2425_e2v1.js create mode 100644 frontend/img/ct/math/rt2425_e2v1/a10.png create mode 100644 frontend/img/ct/math/rt2425_e2v1/a2.png create mode 100644 frontend/img/ct/math/rt2425_e2v1/a3.png diff --git a/backend/scripts/seed_ctmath_rt2425_e2v1.js b/backend/scripts/seed_ctmath_rt2425_e2v1.js new file mode 100644 index 0000000..05eef28 --- /dev/null +++ b/backend/scripts/seed_ctmath_rt2425_e2v1.js @@ -0,0 +1,298 @@ +'use strict'; +/* ─────────────────────────────────────────────────────────────────────────── + seed_ctmath_rt2425_e2v1.js — РТ–2024/2025, Этап II, Вариант 1 → variant=102 + Чистый 30-задачный пробник (А1–А10 + В1–В20). Этап II — другой набор тем, чем + Этап I (позже по программе: обратные тригфункции, логарифмы, производная, + стереометрия). Перенабрано вручную в KaTeX по PDF + (…\РТ\2024-2025\МАТ РТ-2 24_25 В1.pdf); чертежи вырезаны из PDF. + Правило тиража: 1 вариант на Этап (В1/В2 одного этапа — дубли, берём один). + + Запуск: node backend/scripts/seed_ctmath_rt2425_e2v1.js [--apply] + Контракт формата/проверок — см. seed_ctmath_rt2425_e1v1.js. + ─────────────────────────────────────────────────────────────────────────── */ + +const { DatabaseSync } = require('node:sqlite'); +const path = require('path'); + +const APPLY = process.argv.includes('--apply'); +const EXAM = 'ctmath'; +const VARIANT = 102; +const PROV = 'РТ–2024/2025, Этап II, Вариант 1'; +const FIGDIR = 'rt2425_e2v1'; +const R = String.raw; + +const FIG = (name, alt) => + `${alt}`; + +const L = ['а', 'б', 'в', 'г', 'д']; +const mc = (...html) => html.map((h, i) => [L[i], h]); + +const TASKS = [ + // ── Часть A ────────────────────────────────────────────────────────────── + { idx: 1, type: 'mc', topic: 'numbers', subtopic: 'num-divisibility', diff: 1, + text: R`Юра и Ян собирали яблоки. Юра собрал яблок в $4$ раза больше, чем Ян. Какую часть всех собранных яблок собрал Ян?`, + opts: mc('$\dfrac45$', '$\dfrac15$', '$\dfrac13$', '$\dfrac14$', '$\dfrac34$'), + answer: 'б', + sol: R`Ян собрал в $4$ раза меньше Юры, поэтому всё количество яблок делится на $4+1=5$ равных частей, и Ян собрал одну из них, то есть $\dfrac15$.`, + ref: 'Герасимов «Математика, 5 кл.», ч. 2, гл. 3, § 1' }, + + { idx: 2, type: 'mc', topic: 'planimetry', subtopic: 'plan-triangles', diff: 2, + text: R`Используя данные рисунка, определите, чему должна быть равна градусная мера угла $1$, чтобы прямые $a$ и $b$ были параллельны.`, + opts: mc('$68^\circ$', '$48^\circ$', '$46^\circ$', '$36^\circ$', '$44^\circ$'), + answer: 'д', + sol: R`Угол $2$, смежный с углом $136^\circ$, равен $44^\circ$. Прямые $a$ и $b$ параллельны, если соответственные углы $1$ и $2$ при секущей $c$ равны, поэтому $\angle 1=44^\circ$.`, + ref: 'Казаков «Геометрия, 7 кл.», гл. 3, § 15', + fig: FIG('a2.png', 'Прямые a и b, секущая c; угол 1 и угол 136°') }, + + { idx: 3, type: 'mc', topic: 'functions', subtopic: 'fn-graphs', diff: 1, + text: R`Укажите номер рисунка, на котором изображён график функции $y=|x|$.`, + opts: mc('$1$', '$2$', '$3$', '$4$', '$5$'), + answer: 'в', + sol: R`График функции $y=|x|$ — это «уголок» с вершиной в начале координат (ветви $y=x$ при $x\ge0$ и $y=-x$ при $x<0$). Ему соответствует рисунок $3$.`, + ref: 'Арефьева «Алгебра, 8 кл.», гл. 4, § 19', + fig: FIG('a3.png', 'Пять графиков-кандидатов 1–5; график 3 — «уголок» y=|x|') }, + + { idx: 4, type: 'mc', topic: 'expressions', subtopic: 'expr-polynomials', diff: 1, + text: R`Среди значений переменной $x$, равных $16;\ -1;\ 1;\ -4;\ -15$, укажите то, при котором значение выражения $0{,}36-x^2$ равно $-15{,}64$.`, + opts: mc('$16$', '$-1$', '$1$', '$-4$', '$-15$'), + answer: 'г', + sol: R`Проверяем: при $x=-4$ имеем $0{,}36-(-4)^2=0{,}36-16=-15{,}64$. Остальные значения дают другой результат.`, + ref: 'Арефьева «Алгебра, 7 кл.», гл. 2, § 4' }, + + { idx: 5, type: 'mc', topic: 'equations', subtopic: 'eq-linear', diff: 2, + text: R`Укажите номер, под которым приведено множество всех решений системы неравенств $\begin{cases}x\le 6,\\ x<-4.\end{cases}$`, + opts: mc('$(-\infty;-4)$', '$(-\infty;6]$', '$(-4;6]$', '$(-\infty;6)$', '$(-\infty;-4)\cup(-4;6]$'), + answer: 'а', + sol: R`Решение первого неравенства — луч $(-\infty;6]$, второго — открытый луч $(-\infty;-4)$. Пересечением является $(-\infty;-4)$.`, + ref: 'Арефьева «Алгебра, 8 кл.», гл. 1, § 6' }, + + { idx: 6, type: 'open', topic: 'numbers', subtopic: 'num-real', diff: 2, + text: R`Среди выражений $\log_{\sqrt2}4$; $\ -5^2$; $\ \cos\dfrac{5\pi}{6}$; $\ 7^{-1}$; $\ \sqrt[5]{(-2)^5}$ укажите те, значение которых является отрицательным числом.
Ответ запишите номерами в порядке возрастания, без пробелов.`, + answer: '235', ansShow: '2, 3, 5', + sol: R`$1)\ \log_{\sqrt2}4=4>0$. $\ 2)\ -5^2=-25<0$. $\ 3)\ \cos\dfrac{5\pi}{6}=-\dfrac{\sqrt3}{2}<0$. $\ 4)\ 7^{-1}=\dfrac17>0$. $\ 5)\ \sqrt[5]{(-2)^5}=-2<0$. Отрицательны выражения 2, 3, 5.`, + ref: 'Арефьева «Алгебра, 11 кл.», гл. 1, § 3' }, + + { idx: 7, type: 'mc', topic: 'expressions', subtopic: 'expr-polynomials', diff: 2, + text: R`Результат разложения многочлена $(a-b)+2c(b-a)$ на множители имеет вид:`, + opts: mc('$(a-b)(1+2c)$', '$(a-b)(2c-1)$', '$(a-b)(1-2c)$', '$-2c(a-b)$', '$2c(a-b)$'), + answer: 'в', + sol: R`$(a-b)+2c(b-a)=(a-b)-2c(a-b)=(a-b)(1-2c)$.`, + ref: 'Арефьева «Алгебра, 7 кл.», гл. 2, § 14' }, + + { idx: 8, type: 'mc', topic: 'equations', subtopic: 'eq-linear', diff: 2, + text: R`Укажите номер неравенства, которое равносильно неравенству $x>5$.`, + opts: mc('$x^2>5x$', '$\dfrac{1}{x-5}<0$', '$(x-5)^2>0$', '$-2x<-10$', '$(0{,}5)^{x-5}>0$'), + answer: 'г', + sol: R`Решение $x>5$ — луч $(5;+\infty)$. Неравенство $-2x<-10$ равносильно $x>5$ — то же множество решений. (Остальные дают другие множества.)`, + ref: 'Арефьева «Алгебра, 9 кл.», гл. 3, § 13' }, + + { idx: 9, type: 'mc', topic: 'stereometry', subtopic: 'ster-polyhedra', diff: 2, + text: R`У правильной четырёхугольной призмы площадь основания равна $28$ см$^2$. Какой должна быть высота (в сантиметрах) этой призмы, чтобы её объём был равен $98$ см$^3$?`, + opts: mc('$2$', '$4$', '$3{,}2$', '$4{,}5$', '$3{,}5$'), + answer: 'д', + sol: R`Объём призмы $V=S_{\text{осн}}\cdot h$. Тогда $98=28h$, откуда $h=3{,}5$ см.`, + ref: 'Латотин «Геометрия, 11 кл.», разд. 1, § 1' }, + + { idx: 10, type: 'open', topic: 'functions', subtopic: 'fn-properties', diff: 3, + text: R`На рисунке изображён график функции $y=f(x)$, определённой на промежутке $[-6;6]$. Укажите номера верных утверждений.
1) множеством значений функции является отрезок $[-3;4]$;
2) функция является нечётной;
3) график функции $y=f(x-1)$ проходит через точку $(0;2)$;
4) функция убывает на промежутках $[-1;0]$ и $[1;6]$;
5) $f(-5)+f(2)<0$.
Ответ запишите номерами в порядке возрастания, без пробелов.`, + answer: '14', ansShow: '1, 4', + sol: R`$1)$ верно: $E(f)=[-3;4]$. $\ 2)$ неверно: график симметричен относительно оси ординат, функция чётная. $\ 3)$ неверно: точка $(0;2)$ не принадлежит графику $y=f(x-1)$. $\ 4)$ верно: на $[-1;0]$ и $[1;6]$ значения убывают. $\ 5)$ неверно: $-20$.`, + ref: 'Арефьева «Алгебра, 9 кл.», гл. 2, § 6–9', + fig: FIG('a10.png', 'График чётной функции y=f(x) на [-6;6], с пиками y=4 и краями y=-3') }, + + // ── Часть B ────────────────────────────────────────────────────────────── + { idx: 11, type: 'long', topic: 'trigonometry', subtopic: 'trig-identities', diff: 3, + text: R`Для начала каждого из предложений А–В подберите его окончание 1–6 так, чтобы получилось верное утверждение.
Начало:
А) Значение выражения $\arcsin 0-|-5|$ равно …
Б) Значение выражения $\dfrac1\pi\arccos\left(-\dfrac{\sqrt3}{2}\right)-\dfrac13$ равно …
В) Значение выражения $4\sqrt6\,\sin\left(2\arccos\dfrac{\sqrt2}{2}-\dfrac\pi4\right)$ равно …
Окончание:
1) $6\sqrt2$; 2) $-5$; 3) $\dfrac13$; 4) $-4$; 5) $4\sqrt3$; 6) $\dfrac12$.
Ответ запишите сочетанием букв и цифр, например: А1Б1В4.`, + answer: 'А2Б6В5', ansShow: 'А2Б6В5', + sol: R`А) $\arcsin0-|-5|=0-5=-5$ — окончание 2. Б) $\dfrac1\pi\cdot\dfrac{5\pi}{6}-\dfrac13=\dfrac56-\dfrac13=\dfrac12$ — окончание 6. В) $4\sqrt6\,\sin\left(2\cdot\dfrac\pi4-\dfrac\pi4\right)=4\sqrt6\sin\dfrac\pi4=4\sqrt6\cdot\dfrac{\sqrt2}{2}=4\sqrt3$ — окончание 5.`, + ref: 'Арефьева «Алгебра, 10 кл.», гл. 1, § 7' }, + + { idx: 12, type: 'open', topic: 'stereometry', subtopic: 'ster-polyhedra', diff: 3, + text: R`$ABCDA_1B_1C_1D_1$ — куб. Длина пространственной ломаной $ABB_1C_1C$ равна $16\sqrt3$. Выберите верные утверждения.
1) длина диагонали грани $ABCD$ равна $4\sqrt3$;
2) площадь полной поверхности куба равна $192$;
3) длина диагонали куба равна $4\sqrt6$;
4) площадь треугольника $AC_1C$ равна $24\sqrt2$;
5) длина ребра куба равна $4\sqrt3$;
6) объём куба равен $192\sqrt3$.
Ответ запишите номерами в порядке возрастания, без пробелов.`, + answer: '456', ansShow: '4, 5, 6', + sol: R`Ломаная $ABB_1C_1C$ состоит из четырёх рёбер: $16\sqrt3:4=4\sqrt3$ — ребро. $\ 1)$ диагональ грани $=4\sqrt3\cdot\sqrt2=4\sqrt6$ — неверно. $\ 2)\ S=6a^2=6\cdot48=288$ — неверно. $\ 3)$ диагональ куба $=a\sqrt3=4\sqrt3\cdot\sqrt3=12$ — неверно. $\ 4)\ S_{AC_1C}=\tfrac12\cdot4\sqrt6\cdot4\sqrt3=24\sqrt2$ — верно. $\ 5)$ ребро $=4\sqrt3$ — верно. $\ 6)\ V=a^3=(4\sqrt3)^3=192\sqrt3$ — верно.`, + ref: 'Латотин «Геометрия, 11 кл.», разд. 1, § 1' }, + + { idx: 13, type: 'open', topic: 'trigonometry', subtopic: 'trig-identities', diff: 3, + text: R`Найдите значение выражения $15\sqrt{10}\,\operatorname{tg}\alpha$, если $\operatorname{ctg}\alpha=-\dfrac{\sqrt{10}}{8}$.`, + answer: '-120', + sol: R`Из тождества $\operatorname{tg}\alpha\cdot\operatorname{ctg}\alpha=1$: $\operatorname{tg}\alpha=\dfrac1{\operatorname{ctg}\alpha}=-\dfrac{8}{\sqrt{10}}=-\dfrac{4\sqrt{10}}{5}$. Тогда $15\sqrt{10}\cdot\left(-\dfrac{4\sqrt{10}}{5}\right)=15\cdot\left(-\dfrac{4\cdot10}{5}\right)=-120$.`, + ref: 'Арефьева «Алгебра, 10 кл.», гл. 1, § 4' }, + + { idx: 14, type: 'open', topic: 'planimetry', subtopic: 'plan-quadrilaterals', diff: 2, + text: R`Диагонали ромба равны $4$ и $10$. Найдите значение выражения $\sqrt{29}\cdot P$, где $P$ — периметр ромба.`, + answer: '116', + sol: R`Диагонали ромба перпендикулярны и делятся точкой пересечения пополам. Сторона $a=\sqrt{2^2+5^2}=\sqrt{29}$. Периметр $P=4\sqrt{29}$, тогда $\sqrt{29}\cdot P=\sqrt{29}\cdot4\sqrt{29}=4\cdot29=116$.`, + ref: 'Казаков «Геометрия, 8 кл.», гл. 1, § 5' }, + + { idx: 15, type: 'open', topic: 'numbers', subtopic: 'num-divisibility', diff: 3, + text: R`Пусть $A$ — наименьшее натуральное число, большее $50$, при делении которого на $9$ и на $12$ получается остаток $1$. Найдите остаток при делении числа $A$ на $13$. В ответ запишите сумму числа $A$ и полученного остатка.`, + answer: '81', + sol: R`$A-1$ делится и на $9$, и на $12$, то есть кратно $\text{НОК}(9;12)=36$. Наименьшее такое $A-1>49$ равно $72$, значит $A=73$. Остаток от деления $73$ на $13$ равен $8$. Сумма $73+8=81$.`, + ref: 'Герасимов «Математика, 5 кл.», ч. 1, гл. 1, § 11–13' }, + + { idx: 16, type: 'open', topic: 'word-sequences', subtopic: 'seq-progressions', diff: 3, + text: R`Найдите, при каком значении переменной $x$ значения выражений $x-18$; $\ x-3$; $\ x+17$ будут последовательными членами геометрической прогрессии.`, + answer: '63', + sol: R`По характеристическому свойству геометрической прогрессии $(x-3)^2=(x-18)(x+17)$. Раскрывая: $x^2-6x+9=x^2-x-306$, $-5x=-315$, $x=63$.`, + ref: 'Арефьева «Алгебра, 9 кл.», гл. 4, § 17' }, + + { idx: 17, type: 'open', topic: 'equations', subtopic: 'eq-rational', diff: 4, + text: R`Пусть $(x_1;y_1)$ и $(x_2;y_2)$ — решения системы уравнений $\begin{cases}x^2+3y=27,\\ x-y=-9.\end{cases}$ Найдите значение выражения $x_1x_2-y_1y_2$.`, + answer: '-54', + sol: R`Из второго уравнения $y=x+9$. Тогда $x^2+3(x+9)=27$, $x^2+3x=0$, $x=0$ или $x=-3$. Решения: $(-3;6)$ и $(0;9)$. Значение $x_1x_2-y_1y_2=(-3)\cdot0-6\cdot9=-54$ (не зависит от выбора нумерации пар).`, + ref: 'Арефьева «Алгебра, 9 кл.», гл. 3, § 11' }, + + { idx: 18, type: 'open', topic: 'word-sequences', subtopic: 'word-problems', diff: 3, + text: R`Аппликация состоит из двух подобных треугольников $\mathrm{I}$ и $\mathrm{II}$. Площадь треугольника $\mathrm{I}$ равна $75$ см$^2$, а длины сторон треугольника $\mathrm{II}$ на $20\%$ больше длин соответствующих сторон треугольника $\mathrm{I}$. Найдите (в см$^2$) площадь всей аппликации.`, + answer: '183', + sol: R`Коэффициент подобия (II к I) равен $1{,}2=\dfrac65$. Отношение площадей подобных треугольников равно квадрату коэффициента: $S_{\mathrm{II}}=75\cdot\left(\dfrac65\right)^2=75\cdot\dfrac{36}{25}=108$ см$^2$. Площадь всей аппликации $75+108=183$ см$^2$.`, + ref: 'Казаков «Геометрия, 8 кл.», гл. 3, § 23' }, + + { idx: 19, type: 'open', topic: 'equations', subtopic: 'eq-logarithmic', diff: 3, + text: R`Найдите значение выражения $2\log_{25}\left(\dfrac{a}{125}\right)-\log_5\dfrac{25}{b}$, если $\log_{25}(ab)=19$.`, + answer: '33', + sol: R`$2\log_{25}\left(\dfrac{a}{125}\right)=\log_5\dfrac{a}{125}$. Тогда выражение равно $\log_5\dfrac{a}{125}-\log_5\dfrac{25}{b}=\log_5\dfrac{ab}{5^5}=\log_5(ab)-5=2\log_{25}(ab)-5=2\cdot19-5=33$.`, + ref: 'Арефьева «Алгебра, 11 кл.», гл. 3, § 7' }, + + { idx: 20, type: 'open', topic: 'planimetry', subtopic: 'plan-triangles', diff: 4, + text: R`В равнобедренном треугольнике $KMN$ проведена высота $MH$ к основанию $KN$. Точка $P$ — середина боковой стороны $MN$. Известно, что длина высоты $MH$ равна длине отрезка $HP$ и $KN=6\sqrt6$. Найдите значение выражения $S^2$, где $S$ — площадь треугольника $KMN$.`, + answer: '972', + sol: R`Высота $MH$ равнобедренного треугольника является и медианой, поэтому $HN=\tfrac12 KN=3\sqrt6$. В прямоугольном треугольнике $MHN$ отрезок $HP$ — медиана к гипотенузе $MN$, значит $HP=\tfrac12 MN$; по условию $MH=HP=\tfrac12 MN$, то есть катет $MH$ равен половине гипотенузы, и $\angle MNH=30^\circ$. Тогда $MH=HN\operatorname{tg}30^\circ=3\sqrt6\cdot\dfrac{\sqrt3}{3}=3\sqrt2$. Площадь $S=\tfrac12\cdot KN\cdot MH=\tfrac12\cdot6\sqrt6\cdot3\sqrt2=18\sqrt3$, откуда $S^2=972$.`, + ref: 'Казаков «Геометрия, 8 кл.», гл. 2, § 15–16' }, + + { idx: 21, type: 'open', topic: 'functions', subtopic: 'fn-properties', diff: 3, + text: R`Найдите количество всех целых чисел из множества значений функции $y=\left(\dfrac13\right)^{-x}$ на отрезке $[3;4]$.`, + answer: '55', + sol: R`$y=\left(\dfrac13\right)^{-x}=3^x$ — возрастающая функция. При $3\le x\le4$ имеем $3^3\le 3^x\le 3^4$, то есть $E=[27;81]$. Целых чисел на отрезке $[27;81]$ — $81-27+1=55$.`, + ref: 'Арефьева «Алгебра, 11 кл.», гл. 2, § 4' }, + + { idx: 22, type: 'open', topic: 'word-sequences', subtopic: 'word-problems', diff: 3, + text: R`Первый турист ехал от базы со скоростью $40$ км/ч и успел на станцию за $3$ мин до отправления поезда. Второй турист, выехавший одновременно с первым от той же базы со скоростью $35$ км/ч, опоздал на этот же поезд на $3$ мин. На каком расстоянии (в километрах) от базы находится станция?`, + answer: '28', + sol: R`Пусть расстояние равно $x$ км. Разница во времени между туристами составляет $6$ мин $=\dfrac1{10}$ ч: $\dfrac{x}{35}-\dfrac{x}{40}=\dfrac1{10}$, $\dfrac{x}{280}=\dfrac1{10}$, $x=28$ км.`, + ref: 'Арефьева «Алгебра, 7 кл.», гл. 3, § 16; гл. 4, § 25' }, + + { idx: 23, type: 'open', topic: 'equations', subtopic: 'eq-logarithmic', diff: 4, + text: R`Найдите произведение наименьшего целого решения на количество всех целых решений неравенства $\log_{0{,}4}\left(\dfrac{x^2}{4}-3\right)\ge 0$.`, + answer: '-8', + sol: R`$0=\log_{0{,}4}1$, и так как $0<0{,}4<1$, неравенство равносильно системе $\dfrac{x^2}{4}-3\le1$ и $\dfrac{x^2}{4}-3>0$, то есть $x^2\le16$ и $x^2>12$. Решение: $[-4;-2\sqrt3)\cup(2\sqrt3;4]$. Целых решений два ($-4$ и $4$), наименьшее $-4$. Произведение $-4\cdot2=-8$.`, + ref: 'Арефьева «Алгебра, 11 кл.», гл. 3, § 10' }, + + { idx: 24, type: 'open', topic: 'trigonometry', subtopic: 'trig-equations', diff: 4, + text: R`Найдите (в градусах) наименьший положительный корень уравнения $4\sin\dfrac{x}{7}\cos\dfrac{x}{7}=\sqrt3$.`, + answer: '210', + sol: R`По формуле синуса двойного аргумента $2\sin\dfrac{2x}{7}=\sqrt3$, $\sin\dfrac{2x}{7}=\dfrac{\sqrt3}{2}$. Тогда $\dfrac{2x}{7}=(-1)^k60^\circ+180^\circ k$, $x=(-1)^k210^\circ+630^\circ k$. Наименьший положительный корень — $210^\circ$ (при $k=0$).`, + ref: 'Арефьева «Алгебра, 10 кл.», гл. 1, § 8; § 11' }, + + { idx: 25, type: 'open', topic: 'stereometry', subtopic: 'ster-polyhedra', diff: 4, + text: R`В правильной треугольной пирамиде ребро основания равно $2\sqrt2$, а угол между боковым ребром и плоскостью основания равен $30^\circ$. Найдите значение выражения $9\sqrt6\cdot V$, где $V$ — объём этой пирамиды.`, + answer: '24', + sol: R`Высота $SO$, $\angle SAO=30^\circ$. $AO=\tfrac23 AM$, где медиана $AM=\sqrt6$, значит $AO=\dfrac{2\sqrt6}{3}$. Тогда $SO=AO\operatorname{tg}30^\circ=\dfrac{2\sqrt6}{3}\cdot\dfrac{\sqrt3}{3}=\dfrac{2\sqrt2}{3}$. Объём $V=\dfrac13\cdot\dfrac{(2\sqrt2)^2\sqrt3}{4}\cdot\dfrac{2\sqrt2}{3}=\dfrac{4\sqrt6}{9}$. Тогда $9\sqrt6\cdot V=9\sqrt6\cdot\dfrac{4\sqrt6}{9}=4\cdot6=24$.`, + ref: 'Латотин «Геометрия, 11 кл.», разд. 2, § 3' }, + + { idx: 26, type: 'open', topic: 'equations', subtopic: 'eq-irrational', diff: 4, + text: R`Найдите произведение корней (корень, если он единственный) уравнения $\sqrt[4]{x^2+6x-27}\cdot\sqrt[3]{x^2-6x-27}=0$.`, + answer: '-243', + sol: R`Произведение равно нулю, когда один из множителей равен нулю, а другой имеет смысл. $x^2+6x-27=0\Rightarrow x=-9,\ 3$ (оба удовлетворяют ОДЗ). $x^2-6x-27=0\Rightarrow x=-3,\ 9$, но при $x=-3$ подкоренное выражение $\sqrt[4]{\;}$ отрицательно — не подходит, остаётся $x=9$. Корни уравнения: $-9,\ 3,\ 9$; произведение $-9\cdot3\cdot9=-243$.`, + ref: 'Арефьева «Алгебра, 10 кл.», гл. 2, § 17' }, + + { idx: 27, type: 'open', topic: 'stereometry', subtopic: 'ster-angles-distances', diff: 5, + text: R`$ABCA_1B_1C_1$ — прямая треугольная призма, все рёбра которой равны. Точки $K$ и $M$ — середины рёбер $A_1C_1$ и $B_1C_1$ соответственно. Точка $N$ лежит на ребре $AB$ так, что $AN:NB=1:5$. Найдите значение выражения $\dfrac{1}{\cos^2\varphi}$, где $\varphi$ — угол между прямыми $A_1N$ и $KM$.`, + answer: '37', + sol: R`Пусть ребро равно $a$, $AN=\dfrac a6$. Так как $KM\parallel AB$ (средняя линия), угол между $A_1N$ и $KM$ равен углу $\angle NA_1B_1$. В прямоугольном треугольнике $A_1AN$: $A_1N=\sqrt{a^2+\left(\dfrac a6\right)^2}=\dfrac{a\sqrt{37}}{6}$, $\sin\angle AA_1N=\dfrac{a/6}{A_1N}=\dfrac{\sqrt{37}}{37}$. Тогда $\cos\varphi=\sin\angle AA_1N=\dfrac{\sqrt{37}}{37}$, и $\dfrac{1}{\cos^2\varphi}=37$.`, + ref: 'Латотин «Геометрия, 10 кл.», разд. 2, § 4' }, + + { idx: 28, type: 'open', topic: 'equations', subtopic: 'eq-exponential', diff: 4, + text: R`Найдите произведение наибольшего целого отрицательного и наименьшего целого положительного решений неравенства $5\cdot25^{\frac{5-x}{23}}-26\cdot25^{\frac{5-x}{46}}+5\ge 0$.`, + answer: '-504', + sol: R`Замена $t=25^{\frac{5-x}{46}}$ даёт $5t^2-26t+5\ge0$, откуда $t\le\dfrac15$ или $t\ge5$. Тогда $\dfrac{5-x}{23}\le-1$ или $\dfrac{5-x}{23}\ge1$, то есть $x\ge28$ или $x\le-18$. Решение: $(-\infty;-18]\cup[28;+\infty)$. Наибольшее целое отрицательное — $-18$, наименьшее целое положительное — $28$; произведение $-18\cdot28=-504$.`, + ref: 'Арефьева «Алгебра, 11 кл.», гл. 2, § 6' }, + + { idx: 29, type: 'open', topic: 'functions', subtopic: 'fn-derivative', diff: 4, + text: R`Найдите точку максимума и максимум функции $f(x)=x^3-75x-24\sin\dfrac{7\pi}{6}$. В ответ запишите их сумму.`, + answer: '257', + sol: R`$24\sin\dfrac{7\pi}{6}=24\cdot\left(-\dfrac12\right)=-12$, поэтому $f(x)=x^3-75x+12$. $f'(x)=3x^2-75=0$ при $x=\pm5$. Точка максимума $x_{\max}=-5$, $f(-5)=-125+375+12=262$. Сумма $-5+262=257$.`, + ref: 'Арефьева «Алгебра, 10 кл.», гл. 3, § 20' }, + + { idx: 30, type: 'open', topic: 'stereometry', subtopic: 'ster-rotation', diff: 5, + text: R`Плоскость, параллельная основанию конуса, делит его высоту в отношении $2:5$, считая от вершины. Площадь сечения конуса меньше площади основания на $270\pi$. Образующая конуса составляет с плоскостью основания угол $\operatorname{arctg}\dfrac57$. Найдите значение выражения $\dfrac{\sqrt6\,V}{\pi}$, где $V$ — объём конуса.`, + answer: '2940', + sol: R`Сечением является круг; по свойству площади относятся как квадраты расстояний от вершины: $\dfrac{S_{\text{осн}}-270\pi}{S_{\text{осн}}}=\left(\dfrac27\right)^2=\dfrac{4}{49}$, откуда $45 S_{\text{осн}}=49\cdot270\pi$, $S_{\text{осн}}=294\pi$. Тогда $R^2=294$, $R=7\sqrt6$. Высота $SO=R\operatorname{tg}\left(\operatorname{arctg}\dfrac57\right)=7\sqrt6\cdot\dfrac57=5\sqrt6$. Объём $V=\dfrac13 S_{\text{осн}}\cdot SO=\dfrac13\cdot294\pi\cdot5\sqrt6=490\pi\sqrt6$. Тогда $\dfrac{\sqrt6\,V}{\pi}=490\cdot6=2940$.`, + ref: 'Латотин «Геометрия, 11 кл.», разд. 2, § 4' }, +]; + +/* ── машинерия (как в e1v1) ────────────────────────────────────────────────── */ +function ansShowOf(t) { if (t.ansShow != null) return t.ansShow; if (t.type === 'mc') return `${t.answer})`; return `$${t.answer}$`; } +function buildSolution(t) { + let html = `${t.sol}
Ответ: ${ansShowOf(t)}
`; + if (t.ref) html += `
Учебник: ${t.ref}
`; + return html; +} +const EPS = 1e-6; +function srvToNumber(s) { + if (s == null) return NaN; + let t = String(s).trim().replace(/\$/g, '').replace(/\s+/g, '').replace(',', '.'); + const f = t.match(/^(-?\d+(?:\.\d+)?)\s*\/\s*(-?\d+(?:\.\d+)?)$/); + if (f) { const n = Number(f[1]), d = Number(f[2]); return d === 0 ? NaN : n / d; } + const n = Number(t); return Number.isFinite(n) ? n : NaN; +} +function checkAnswerServer(u, c0) { + if (u == null || c0 == null) return false; + const c = String(c0).trim(); + if (/^[а-д]$/.test(c)) return String(u).trim().toLowerCase() === c.toLowerCase(); + if (/^[^;]+;[^;]+$/.test(c)) return false; + const cn = srvToNumber(c), un = srvToNumber(u); + if (Number.isNaN(cn) || Number.isNaN(un)) return false; + return Math.abs(cn - un) < EPS; +} +const problems = []; +if (TASKS.length !== 30) problems.push(`Ожидалось 30, получено ${TASKS.length}`); +const seen = new Set(); +for (const t of TASKS) { + if (seen.has(t.idx)) problems.push(`Дубль idx=${t.idx}`); seen.add(t.idx); + if (t.idx < 1 || t.idx > 30) problems.push(`idx вне 1..30: ${t.idx}`); + if (!['mc', 'open', 'long'].includes(t.type)) problems.push(`#${t.idx}: тип ${t.type}`); + if (t.type === 'mc') { + if (!Array.isArray(t.opts) || t.opts.length !== 5) problems.push(`#${t.idx}: mc!=5 опций`); + if (!t.opts.some(o => o[0] === t.answer)) problems.push(`#${t.idx}: answer "${t.answer}" не среди меток`); + } + if (!t.text || !t.sol) problems.push(`#${t.idx}: пустой text/sol`); + if (t.type !== 'long' && !checkAnswerServer(t.answer, t.answer)) problems.push(`#${t.idx}: self-check "${t.answer}"`); + if (/−/.test(String(t.answer))) problems.push(`#${t.idx}: Unicode-минус в answer`); +} +module.exports = { TASKS, buildSolution, ansShowOf, checkAnswerServer, EXAM, VARIANT, PROV }; +if (require.main !== module) return; + +const DB = path.join(__dirname, '..', 'data', 'learnspace.db'); +const db = new DatabaseSync(DB); +if (!db.prepare(`SELECT exam_key FROM exam_tracks WHERE exam_key=?`).get(EXAM)) { console.error(`✗ Трек '${EXAM}' не найден.`); process.exit(1); } +console.log(`\n=== seed_ctmath_rt2425_e2v1 (${PROV}) variant=${VARIANT} ===`); +console.log(`Режим: ${APPLY ? 'APPLY' : 'DRY-RUN'}\n`); +console.log('Типы:', JSON.stringify(TASKS.reduce((a, t) => (a[t.type] = (a[t.type] || 0) + 1, a), {})), '| фигур:', TASKS.filter(t => t.fig).length, '\n'); +console.log('idx | type | subtopic | d | answer | fig'); +console.log('----+------+-----------------------+---+-----------+----'); +for (const t of TASKS) console.log(`${String(t.idx).padStart(3)} | ${t.type.padEnd(4)} | ${String(t.subtopic).padEnd(21)} | ${t.diff} | ${String(t.answer).padEnd(9)} | ${t.fig ? '✓' : ''}`); +if (problems.length) { console.error(`\n✗ ПРОБЛЕМЫ (${problems.length}):`); problems.forEach(p => console.error(' - ' + p)); db.close(); process.exit(1); } +console.log('\n✓ Валидация и self-check ответов пройдены (30/30).'); +if (!APPLY) { console.log('\nDRY-RUN: ничего не записано. Для записи добавьте --apply\n'); db.close(); process.exit(0); } + +const upsert = db.prepare(` + INSERT INTO exam_tasks (exam_key, variant, task_idx, task_type, text_html, figure_html, opts_json, answer, solution_html, topic, subtopic, difficulty) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + ON CONFLICT(exam_key, variant, task_idx) DO UPDATE SET + task_type=excluded.task_type, text_html=excluded.text_html, figure_html=excluded.figure_html, + opts_json=excluded.opts_json, answer=excluded.answer, solution_html=excluded.solution_html, + topic=excluded.topic, subtopic=excluded.subtopic, difficulty=excluded.difficulty`); +let n = 0; db.exec('BEGIN'); +try { + for (const t of TASKS) { upsert.run(EXAM, VARIANT, t.idx, t.type, t.text, t.fig || null, t.type === 'mc' ? JSON.stringify(t.opts) : null, t.answer, buildSolution(t), t.topic, t.subtopic, t.diff); n++; } + const distinct = db.prepare(`SELECT COUNT(DISTINCT variant) c FROM exam_tasks WHERE exam_key=?`).get(EXAM).c; + db.prepare(`UPDATE exam_tracks SET variants_count=? WHERE exam_key=?`).run(distinct, EXAM); + db.exec('COMMIT'); + console.log(`\n✓ Записано/обновлено ${n} заданий (variant=${VARIANT}). variants_count=${distinct}.`); + console.log(`\nПробник: /exam-prep/ctmath → «Варианты» → «Вариант ${VARIANT}».\n`); +} catch (e) { db.exec('ROLLBACK'); console.error('\n✗ Ошибка записи, откат:', e.message); process.exitCode = 1; } +db.close(); diff --git a/frontend/img/ct/math/rt2425_e2v1/a10.png b/frontend/img/ct/math/rt2425_e2v1/a10.png new file mode 100644 index 0000000000000000000000000000000000000000..c176a8c8354afa8af6dea3adcf7b7c134c4d697e GIT binary patch literal 4409 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 literal 0 HcmV?d00001 diff --git a/frontend/img/ct/math/rt2425_e2v1/a2.png b/frontend/img/ct/math/rt2425_e2v1/a2.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2e27805ae21e6188491f549339b01377159891 GIT binary patch literal 5981 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 literal 0 HcmV?d00001 diff --git a/frontend/img/ct/math/rt2425_e2v1/a3.png b/frontend/img/ct/math/rt2425_e2v1/a3.png new file mode 100644 index 0000000000000000000000000000000000000000..19cc76d6b00642c7eae9ae4bb528d5f955c182d3 GIT binary patch literal 20079 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 Pl4J06^>bP0l+XkK*9c=4 literal 0 HcmV?d00001