ddb49cf0c1
30 заданий А1–А10 + В1–В20, перенабор по PDF РИКЗ. 8 mc + 21 open + 1 long; геометрия закодирована текстом. Идемпотентный seed (upsert), DRY-RUN по умолчанию. Метка 105 уже в VARIANT_LABEL. Запуск с --apply — пользователь. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
365 lines
36 KiB
JavaScript
365 lines
36 KiB
JavaScript
'use strict';
|
||
/* ───────────────────────────────────────────────────────────────────────────
|
||
seed_ctmath_rt2324_e2v1.js
|
||
Чистый вариант-пробник для трека exam-prep `ctmath`.
|
||
|
||
Источник: РТ–2023/2024, Этап II, Вариант 1 (РИКЗ, «Тематическое
|
||
консультирование по математике»). 30 заданий: А1–А10 + В1–В20.
|
||
Перенабрано вручную в KaTeX по PDF (визуальное чтение, НЕ OCR):
|
||
F:\!Рабочие\ЦТ\Математика\Математика\РТ\2023-2024\МАТ РТ-2 23_24 В1.pdf
|
||
|
||
variant=105 — Этап II РТ-2023/24 (этап I — 104, этап III — 106).
|
||
Геометрия закодирована текстом (стандартная разметка фигур / углы словами) —
|
||
отдельных чертежей не требуется (как у большинства существующих задач).
|
||
|
||
Идемпотентность: upsert по UNIQUE(exam_key, variant, task_idx).
|
||
Запуск:
|
||
node backend/scripts/seed_ctmath_rt2324_e2v1.js # DRY-RUN (по умолчанию)
|
||
node backend/scripts/seed_ctmath_rt2324_e2v1.js --apply # запись в БД
|
||
|
||
⚠️ Массовую запись в БД запускает ПОЛЬЗОВАТЕЛЬ вручную (авто-режим Claude Code
|
||
блокирует продакшн-записи). Без --apply ничего не пишется.
|
||
─────────────────────────────────────────────────────────────────────────── */
|
||
|
||
const { DatabaseSync } = require('node:sqlite');
|
||
const path = require('path');
|
||
|
||
const APPLY = process.argv.includes('--apply');
|
||
const EXAM = 'ctmath';
|
||
const VARIANT = 105;
|
||
const PROV = 'РТ–2023/2024, Этап II, Вариант 1';
|
||
const R = String.raw;
|
||
|
||
/* opts: метки кириллица а–д (как в существующих строках ctmath; checkAnswerServer
|
||
имеет ветку /^[а-д]$/). РТ-варианты 1..5 → а..д. */
|
||
const L = ['а', 'б', 'в', 'г', 'д'];
|
||
const mc = (...html) => html.map((h, i) => [L[i], h]);
|
||
|
||
/* ── 30 заданий ─────────────────────────────────────────────────────────── */
|
||
const TASKS = [
|
||
// ── Часть A: А1–А10 ──────────────────────────────────────────────────────
|
||
{ idx: 1, type: 'mc', topic: 'stereometry', subtopic: 'ster-basics', diff: 2,
|
||
text: R`Дана треугольная пирамида $SABC$. Точка $K$ принадлежит ребру $SC$. Среди прямых $SB$, $AK$, $SC$, $BK$, $BA$ укажите прямую, по которой пересекаются плоскости $BKA$ и $SBC$.`,
|
||
opts: mc('$SB$', '$AK$', '$SC$', '$BK$', '$BA$'),
|
||
answer: 'г',
|
||
sol: R`Точка $K$ лежит на ребре $SC$, поэтому она принадлежит плоскости $SBC$. Точки $B$ и $K$ принадлежат обеим плоскостям $BKA$ и $SBC$, значит, плоскости пересекаются по прямой $BK$.`,
|
||
ref: 'Латотин «Геометрия, 10 кл.», разд. 1, § 2' },
|
||
|
||
{ idx: 2, type: 'mc', topic: 'functions', subtopic: 'fn-properties', diff: 2,
|
||
text: R`Наименьшим целым числом, принадлежащим области определения функции $y=\log_5(x+6)$, является число:`,
|
||
opts: mc('$-7$', '$-6$', '$-5$', '$-1$', '$0$'),
|
||
answer: 'в',
|
||
sol: R`Логарифмическая функция $y=\log_5 t$ определена при $t>0$, поэтому $x+6>0$, то есть $x>-6$ и $D(y)=(-6;+\infty)$. Наименьшее целое число из этого промежутка — $-5$.`,
|
||
ref: 'Арефьева «Алгебра, 11 кл.», гл. 3, § 8' },
|
||
|
||
{ idx: 3, type: 'mc', topic: 'equations', subtopic: 'eq-linear', diff: 1,
|
||
text: R`Укажите номер числового промежутка, который является решением неравенства $x\ge-10$.`,
|
||
opts: mc('$(-10;+\infty)$', '$[-10;+\infty)$', '$(-\infty;-10]$', '$(-\infty;-10)$', '$[-10;0)$'),
|
||
answer: 'б',
|
||
sol: R`Решением неравенства $x\ge-10$ является числовой луч $[-10;+\infty)$.`,
|
||
ref: 'Арефьева «Алгебра, 8 кл.», гл. 1, § 5–6' },
|
||
|
||
{ idx: 4, type: 'mc', topic: 'functions', subtopic: 'fn-graphs', diff: 1,
|
||
text: R`Укажите номер функции, графиком которой является гипербола.`,
|
||
opts: mc('$f(x)=-x^{2}+7$', '$f(x)=x^{3}$', '$f(x)=|x|-7$', '$f(x)=-\dfrac{x}{7}$', '$f(x)=-\dfrac{7}{x}$'),
|
||
answer: 'д',
|
||
sol: R`Графиком обратной пропорциональности $y=\dfrac{k}{x}$ ($k\ne0$) является гипербола. Среди предложенных функций обратную пропорциональность задаёт только $f(x)=-\dfrac{7}{x}$.`,
|
||
ref: 'Арефьева «Алгебра, 8 кл.», гл. 3, § 13' },
|
||
|
||
{ idx: 5, type: 'mc', topic: 'equations', subtopic: 'eq-rational', diff: 2,
|
||
text: R`Укажите номер уравнения, равносильного уравнению $x=6$.`,
|
||
opts: mc('$\sqrt{x-5}=1$', '$\log_6 x=0$', '$x^{2}=6$', '$x+6=0$', '$6^{x}=36$'),
|
||
answer: 'а',
|
||
sol: R`Уравнения равносильны, если имеют одно и то же множество корней. Уравнение $\sqrt{x-5}=1$ даёт $x-5=1$, то есть $x=6$ — то же множество корней. (Остальные: $\log_6 x=0\Rightarrow x=1$; $x^{2}=6\Rightarrow x=\pm\sqrt6$; $x+6=0\Rightarrow x=-6$; $6^{x}=36\Rightarrow x=2$.)`,
|
||
ref: 'Арефьева «Алгебра, 7 кл.», гл. 3, § 15' },
|
||
|
||
{ idx: 6, type: 'open', topic: 'numbers', subtopic: 'num-real', diff: 2,
|
||
text: R`Укажите номера верных неравенств.<br>1) $\sqrt5<2$;<br>2) $3<2\sqrt3$;<br>3) $\sqrt{(-4)^{2}}<-3$;<br>4) $0{,}82>\sqrt{0{,}81}$;<br>5) $\sqrt{(-5)^{2}}>\sqrt{(-3)^{2}}$.<br><i>Ответ запишите цифрами в порядке возрастания, без пробелов.</i>`,
|
||
answer: '25', ansShow: '2, 5',
|
||
sol: R`$1)$ неверно: возведя в квадрат, получим ложное $5<4$. $\ 2)$ верно: $9<12$. $\ 3)$ неверно: $\sqrt{(-4)^{2}}=4$, а $4<-3$ ложно. $\ 4)$ неверно: $\sqrt{0{,}81}=0{,}9$, а $0{,}82>0{,}9$ ложно. $\ 5)$ верно: $\sqrt{(-5)^{2}}=5$, $\sqrt{(-3)^{2}}=3$, и $5>3$.`,
|
||
ref: 'Арефьева «Алгебра, 8 кл.», гл. 1, § 1–4' },
|
||
|
||
{ idx: 7, type: 'mc', topic: 'word-sequences', subtopic: 'word-problems', diff: 2,
|
||
text: R`Найдите расстояние (в километрах) между двумя посёлками, если $\dfrac49$ этого расстояния на $10$ км меньше всего расстояния между ними.`,
|
||
opts: mc('$22{,}5$', '$20$', '$15$', '$24$', '$18$'),
|
||
answer: 'д',
|
||
sol: R`Числу $10$ соответствует дробь $1-\dfrac49=\dfrac59$ всего расстояния. Тогда расстояние равно $10:\dfrac59=\dfrac{10\cdot9}{5}=18$ (км).`,
|
||
ref: 'Герасимов «Математика, 5 кл.», ч. 2, гл. 3, § 10' },
|
||
|
||
{ idx: 8, type: 'mc', topic: 'stereometry', subtopic: 'ster-rotation', diff: 2,
|
||
text: R`Радиус основания конуса равен $7$. Если осевым сечением конуса является равносторонний треугольник, то образующая конуса равна:`,
|
||
opts: mc('$7$', '$3{,}5$', '$14$', '$6$', '$7\sqrt2$'),
|
||
answer: 'в',
|
||
sol: R`Осевое сечение конуса — равнобедренный треугольник с основанием, равным диаметру, и боковыми сторонами, равными образующим. Если это равносторонний треугольник, то образующая равна диаметру основания, то есть $2\cdot7=14$.`,
|
||
ref: 'Латотин «Геометрия, 11 кл.», разд. 2, § 4' },
|
||
|
||
{ idx: 9, type: 'mc', topic: 'trigonometry', subtopic: 'trig-identities', diff: 2,
|
||
text: R`Найдите значение выражения $\sqrt6\cdot\cos(-135^\circ)$.`,
|
||
opts: mc('$\dfrac{3\sqrt2}{2}$', '$-\sqrt3$', '$-\dfrac{3\sqrt2}{2}$', '$-\dfrac{\sqrt6}{2}$', '$\sqrt3$'),
|
||
answer: 'б',
|
||
sol: R`$\sqrt6\cdot\cos(-135^\circ)=\sqrt6\cdot\cos135^\circ=\sqrt6\cdot\cos(180^\circ-45^\circ)=-\sqrt6\cdot\cos45^\circ=-\sqrt6\cdot\dfrac{\sqrt2}{2}=-\sqrt3.$`,
|
||
ref: 'Арефьева «Алгебра, 10 кл.», гл. 1, § 2; § 9' },
|
||
|
||
{ idx: 10, type: 'open', topic: 'expressions', subtopic: 'expr-powers-roots', diff: 2,
|
||
text: R`Укажите номера выражений, которые не имеют смысла при $x=-5$.<br>1) $\sqrt{x-5}$;<br>2) $\dfrac{1}{\sqrt{5-x}}$;<br>3) $\dfrac{1}{\sqrt{x+5}}$;<br>4) $\sqrt{-x-5}$;<br>5) $\sqrt{x+5}$.<br><i>Ответ запишите цифрами в порядке возрастания, без пробелов.</i>`,
|
||
answer: '13', ansShow: '1, 3',
|
||
sol: R`$1)$ $\sqrt{x-5}$ имеет смысл при $x\ge5$; число $-5$ не входит — нет смысла. $\ 2)$ $\dfrac{1}{\sqrt{5-x}}$ имеет смысл при $x<5$ — смысл есть. $\ 3)$ $\dfrac{1}{\sqrt{x+5}}$ имеет смысл при $x>-5$; число $-5$ не входит — нет смысла. $\ 4)$ $\sqrt{-x-5}$ имеет смысл при $x\le-5$ — смысл есть. $\ 5)$ $\sqrt{x+5}$ имеет смысл при $x\ge-5$ — смысл есть.`,
|
||
ref: 'Арефьева «Алгебра, 7 кл.», гл. 2, § 4' },
|
||
|
||
// ── Часть B: В1–В20 ──────────────────────────────────────────────────────
|
||
{ idx: 11, type: 'open', topic: 'planimetry', subtopic: 'plan-triangles', diff: 3,
|
||
text: R`Дан прямоугольный треугольник $ABC$ ($\angle ABC=90^\circ$), в котором катет $AB=\sqrt7$, катет $BC=\sqrt2$. Выберите верные утверждения.<br>1) площадь треугольника $ABC$ равна $\sqrt{14}$;<br>2) косинус угла $ACB$ равен $\dfrac{\sqrt2}{3}$;<br>3) синус угла $BAC$ равен $\dfrac{\sqrt7}{3}$;<br>4) тангенс угла $ACB$ равен $\dfrac{\sqrt{14}}{7}$;<br>5) котангенс угла $BAC$ равен $\dfrac{\sqrt{14}}{2}$;<br>6) радиус окружности, описанной около треугольника $ABC$, равен $1{,}5$.<br><i>Ответ запишите цифрами в порядке возрастания, без пробелов.</i>`,
|
||
answer: '256', ansShow: '2, 5, 6',
|
||
sol: R`По теореме Пифагора $AC=\sqrt{AB^{2}+BC^{2}}=\sqrt{7+2}=3$. $\ 1)$ неверно: $S=\dfrac12\cdot\sqrt7\cdot\sqrt2=\dfrac{\sqrt{14}}{2}$. $\ 2)$ верно: $\cos\angle ACB=\dfrac{BC}{AC}=\dfrac{\sqrt2}{3}$. $\ 3)$ неверно: $\sin\angle BAC=\dfrac{BC}{AC}=\dfrac{\sqrt2}{3}$. $\ 4)$ неверно: $\operatorname{tg}\angle ACB=\dfrac{AB}{BC}=\dfrac{\sqrt7}{\sqrt2}=\dfrac{\sqrt{14}}{2}$. $\ 5)$ верно: $\operatorname{ctg}\angle BAC=\dfrac{AB}{BC}=\dfrac{\sqrt{14}}{2}$. $\ 6)$ верно: радиус описанной около прямоугольного треугольника окружности равен половине гипотенузы, то есть $1{,}5$.`,
|
||
ref: 'Казаков «Геометрия, 8 кл.», гл. 2, § 15–16' },
|
||
|
||
{ idx: 12, type: 'long', topic: 'functions', subtopic: 'fn-properties', diff: 2,
|
||
text: R`Для начала каждого из предложений А–В подберите его окончание 1–6 так, чтобы получилось верное утверждение.<br><b>Начало:</b><br>А) Если функция $y=f(x)$ является чётной и $f(6)=-5$, то $f(-6)$ равно …<br>Б) Если функция $y=g(x)$ является нечётной и $g(-3)=2$, то $g(3)$ равно …<br>В) Если функция $y=h(x)$ является чётной и $h(1)=2$, а функция $y=p(x)$ является нечётной и $p(1)=15$, то значение выражения $h(-1)\cdot p(-1)$ равно …<br><b>Окончание:</b><br>1) $30$; 2) $5$; 3) $-2$; 4) $2$; 5) $-30$; 6) $-5$.<br><i>Ответ запишите сочетанием букв и цифр, например: А1Б1В4.</i>`,
|
||
answer: 'А6Б3В5', ansShow: 'А6Б3В5',
|
||
sol: R`А) Для чётной функции $f(-x)=f(x)$, поэтому $f(-6)=f(6)=-5$ — окончание 6. Б) Для нечётной функции $g(-x)=-g(x)$, поэтому $g(3)=-g(-3)=-2$ — окончание 3. В) $h(-1)=h(1)=2$, $p(-1)=-p(1)=-15$, тогда $h(-1)\cdot p(-1)=2\cdot(-15)=-30$ — окончание 5.`,
|
||
ref: 'Арефьева «Алгебра, 9 кл.», гл. 2, § 8' },
|
||
|
||
{ idx: 13, type: 'open', topic: 'numbers', subtopic: 'num-divisibility', diff: 2,
|
||
text: R`Наибольшее натуральное число, которое при делении на $16$ с остатком даёт неполное частное, равное $6$, равно …`,
|
||
answer: '111',
|
||
sol: R`При делении с остатком на $16$ наибольший возможный остаток равен $15$. По формуле $a=q\cdot b+r$ получаем наибольшее число $16\cdot6+15=111$.`,
|
||
ref: 'Герасимов «Математика, 5 кл.», ч. 1, гл. 1, § 11' },
|
||
|
||
{ idx: 14, type: 'open', topic: 'expressions', subtopic: 'expr-powers-roots', diff: 2,
|
||
text: R`Найдите значение выражения $5^{\,1+2\log_5 8}$.`,
|
||
answer: '320',
|
||
sol: R`$5^{\,1+2\log_5 8}=5\cdot\left(5^{\log_5 8}\right)^{2}=5\cdot8^{2}=5\cdot64=320.$`,
|
||
ref: 'Арефьева «Алгебра, 11 кл.», гл. 1, § 3; гл. 3, § 7' },
|
||
|
||
{ idx: 15, type: 'open', topic: 'stereometry', subtopic: 'ster-polyhedra', diff: 3,
|
||
text: R`Длина ребра основания правильной треугольной призмы $ABCA_1B_1C_1$ относится к длине бокового ребра как $12:5$. Найдите длину $l$ замкнутой ломаной $BCA_1AB$, если длина бокового ребра равна $5\sqrt6$. В ответ запишите значение выражения $l\cdot\sqrt6$.`,
|
||
answer: '252',
|
||
sol: R`Боковое ребро $A_1A=5\sqrt6$, тогда из отношения $\dfrac{AB}{5\sqrt6}=\dfrac{12}{5}$ находим ребро основания $AB=BC=AC=12\sqrt6$. Диагональ боковой грани $CA_1=\sqrt{AC^{2}+A_1A^{2}}=\sqrt{(12\sqrt6)^{2}+(5\sqrt6)^{2}}=\sqrt{864+150}=\sqrt{1014}=13\sqrt6$. Замкнутая ломаная $BCA_1AB$ равна $BC+CA_1+A_1A+AB=12\sqrt6+13\sqrt6+5\sqrt6+12\sqrt6=42\sqrt6$, то есть $l=42\sqrt6$. Тогда $l\cdot\sqrt6=42\cdot6=252$.`,
|
||
ref: 'Латотин «Геометрия, 10 кл.», разд. 1, § 1–2' },
|
||
|
||
{ idx: 16, type: 'open', topic: 'word-sequences', subtopic: 'word-problems', diff: 2,
|
||
text: R`Проездной билет на месяц стоит $42$ рубля, а стоимость билета на одну поездку составляет $2\%$ от стоимости проездного билета на месяц. Какую сумму (в рублях) сэкономил Витя, если он купил проездной билет на месяц и сделал по нему за месяц $75$ поездок?`,
|
||
answer: '21',
|
||
sol: R`Стоимость билета на одну поездку равна $42\cdot0{,}02=0{,}84$ рубля. За $75$ поездок без проездного Витя заплатил бы $75\cdot0{,}84=63$ рубля. Таким образом, он сэкономил $63-42=21$ рубль.`,
|
||
ref: 'Герасимов «Математика, 6 кл.», гл. 2, § 1–2' },
|
||
|
||
{ idx: 17, type: 'open', topic: 'word-sequences', subtopic: 'seq-progressions', diff: 2,
|
||
text: R`Найдите сумму бесконечно убывающей геометрической прогрессии, у которой второй член равен $14$, а знаменатель равен $\dfrac23$.`,
|
||
answer: '63',
|
||
sol: R`Первый член $b_1=\dfrac{b_2}{q}=\dfrac{14}{2/3}=21$. По формуле суммы бесконечно убывающей прогрессии $S=\dfrac{b_1}{1-q}=\dfrac{21}{1-\frac23}=\dfrac{21}{1/3}=63.$`,
|
||
ref: 'Арефьева «Алгебра, 9 кл.», гл. 4, § 19' },
|
||
|
||
{ idx: 18, type: 'open', topic: 'expressions', subtopic: 'expr-polynomials', diff: 2,
|
||
text: R`Найдите значение выражения $\left(0{,}6\sqrt{x}+\sqrt[4]{y}\right)^{2}-\left(0{,}6\sqrt{x}-\sqrt[4]{y}\right)^{2}$ при $x=300$, $y=9$.`,
|
||
answer: '72',
|
||
sol: R`По формуле разности квадратов выражение равно $\left(0{,}6\sqrt{x}+\sqrt[4]{y}+0{,}6\sqrt{x}-\sqrt[4]{y}\right)\left(0{,}6\sqrt{x}+\sqrt[4]{y}-0{,}6\sqrt{x}+\sqrt[4]{y}\right)=1{,}2\sqrt{x}\cdot2\sqrt[4]{y}=2{,}4\sqrt{x}\,\sqrt[4]{y}$. При $x=300$, $y=9$: $2{,}4\sqrt{300}\,\sqrt[4]{9}=2{,}4\cdot10\sqrt3\cdot\sqrt3=2{,}4\cdot10\cdot3=72.$`,
|
||
ref: 'Арефьева «Алгебра, 7 кл.», гл. 2, § 12–13' },
|
||
|
||
{ idx: 19, type: 'open', topic: 'equations', subtopic: 'eq-linear', diff: 2,
|
||
text: R`Найдите наибольшее целое решение совокупности неравенств $\left[\begin{array}{l}3x+10<0,\\[2pt]-\dfrac12\,x-3>0.\end{array}\right.$`,
|
||
answer: '-4',
|
||
sol: R`$3x+10<0\Rightarrow x<-\dfrac{10}{3}=-3\dfrac13$; $\ -\dfrac12x-3>0\Rightarrow x<-6$. Объединение открытых лучей есть множество $x\in\left(-\infty;-3\dfrac13\right)$. Наибольшее целое решение равно $-4$.`,
|
||
ref: 'Арефьева «Алгебра, 8 кл.», гл. 1, § 6' },
|
||
|
||
{ idx: 20, type: 'open', topic: 'planimetry', subtopic: 'plan-quadrilaterals', diff: 3,
|
||
text: R`В трапеции $ABCD$ основания $BC$ и $AD$ равны $16$ и $18$ соответственно. Диагонали трапеции пересекаются в точке $O$, причём $OA=9$. Найдите длину диагонали $AC$.`,
|
||
answer: '17',
|
||
sol: R`Треугольники $AOD$ и $COB$ подобны по двум углам ($\angle AOD=\angle COB$ как вертикальные, $\angle OAD=\angle OCB$ как накрест лежащие при $BC\parallel AD$ и секущей $AC$). Из подобия $\dfrac{BC}{AD}=\dfrac{CO}{AO}$, то есть $\dfrac{16}{18}=\dfrac{CO}{9}$, откуда $CO=8$. Тогда $AC=AO+CO=9+8=17.$`,
|
||
ref: 'Казаков «Геометрия, 8 кл.», гл. 1, § 10–11; гл. 3, § 21' },
|
||
|
||
{ idx: 21, type: 'open', topic: 'expressions', subtopic: 'expr-powers-roots', diff: 3,
|
||
text: R`Найдите сумму всех целых значений переменной $x$, при которых имеет смысл выражение $\sqrt{12x-x^{2}}+\dfrac{x}{\sqrt{(x+2)(9-x)}}$.`,
|
||
answer: '36',
|
||
sol: R`Выражение имеет смысл при $\begin{cases}12x-x^{2}\ge0,\\(x+2)(9-x)>0.\end{cases}$ Первое неравенство даёт $x\in[0;12]$, второе — $x\in(-2;9)$. Пересечение — полуинтервал $[0;9)$. Сумма всех целых из него: $0+1+2+\ldots+8=36.$`,
|
||
ref: 'Арефьева «Алгебра, 8 кл.», гл. 3, § 16' },
|
||
|
||
{ idx: 22, type: 'open', topic: 'equations', subtopic: 'eq-linear', diff: 3,
|
||
text: R`Катер прошёл $21$ км по течению реки за $1$ ч $30$ мин, а против течения реки за такое же время — только $18$ км. Найдите (в км/ч) собственную скорость катера, если она и скорость течения реки были постоянными.`,
|
||
answer: '13',
|
||
sol: R`Пусть собственная скорость катера $x$ км/ч, скорость течения $y$ км/ч. За $1{,}5$ ч: $(x+y)\cdot1{,}5=21$ и $(x-y)\cdot1{,}5=18$, то есть $\begin{cases}x+y=14,\\x-y=12.\end{cases}$ Сложив уравнения, получаем $2x=26$, $x=13.$`,
|
||
ref: 'Арефьева «Алгебра, 7 кл.», гл. 4, § 25' },
|
||
|
||
{ idx: 23, type: 'open', topic: 'stereometry', subtopic: 'ster-polyhedra', diff: 3,
|
||
text: R`Длина ребра куба $ABCDA_1B_1C_1D_1$ равна $7\sqrt2$. Найдите значение выражения $\sqrt3\cdot S$, где $S$ — площадь сечения этого куба плоскостью, проходящей через точки $A_1$, $B$, $D$.`,
|
||
answer: '147',
|
||
sol: R`Сечение — треугольник $A_1BD$, стороны которого являются диагоналями граней куба: $A_1B=A_1D=BD=7\sqrt2\cdot\sqrt2=14$. Это равносторонний треугольник со стороной $14$, его площадь $S=\dfrac{14^{2}\sqrt3}{4}=49\sqrt3$. Тогда $\sqrt3\cdot S=\sqrt3\cdot49\sqrt3=147.$`,
|
||
ref: 'Латотин «Геометрия, 10 кл.», разд. 1, § 3' },
|
||
|
||
{ idx: 24, type: 'open', topic: 'equations', subtopic: 'eq-exponential', diff: 3,
|
||
text: R`Найдите сумму всех целых решений неравенства $3^{\,2x+18}-10\cdot3^{\,x+9}+9\le0$.`,
|
||
answer: '-24',
|
||
sol: R`Пусть $t=3^{\,x+9}$, тогда неравенство примет вид $t^{2}-10t+9\le0$, откуда $1\le t\le9$. Значит, $3^{0}\le3^{\,x+9}\le3^{2}$, то есть $0\le x+9\le2$ и $-9\le x\le-7$. Целые решения $-9,\,-8,\,-7$; их сумма равна $-24.$`,
|
||
ref: 'Арефьева «Алгебра, 11 кл.», гл. 2, § 6' },
|
||
|
||
{ idx: 25, type: 'open', topic: 'trigonometry', subtopic: 'trig-equations', diff: 3,
|
||
text: R`Найдите (в градусах) сумму различных корней уравнения $\cos5x\cos2x+\sin5x\sin2x=0$ на промежутке $(0^\circ;135^\circ)$.`,
|
||
answer: '120',
|
||
sol: R`По формуле косинуса разности левая часть равна $\cos(5x-2x)=\cos3x$. Уравнение $\cos3x=0$ даёт $3x=90^\circ+180^\circ n$, $x=30^\circ+60^\circ n$. Промежутку $(0^\circ;135^\circ)$ принадлежат корни $30^\circ$ (при $n=0$) и $90^\circ$ (при $n=1$). Их сумма равна $120^\circ.$`,
|
||
ref: 'Арефьева «Алгебра, 10 кл.», гл. 1, § 8; § 10' },
|
||
|
||
{ idx: 26, type: 'open', topic: 'stereometry', subtopic: 'ster-angles-distances', diff: 4,
|
||
text: R`Основание $AC$ равнобедренного треугольника $ABC$, у которого $\angle ABC=120^\circ$, лежит в плоскости $\alpha$, образующей с плоскостью треугольника угол $30^\circ$. Найдите квадрат расстояния от вершины $B$ треугольника $ABC$ до плоскости $\alpha$, если площадь треугольника $ABC$ равна $160\sqrt3$.`,
|
||
answer: '40',
|
||
sol: R`Площадь $S=\dfrac12\cdot AB\cdot BC\cdot\sin120^\circ$, где $AB=BC$. Тогда $160\sqrt3=\dfrac12 AB^{2}\cdot\dfrac{\sqrt3}{2}$, откуда $AB^{2}=640$, $AB=8\sqrt{10}$. Пусть $BK$ — высота треугольника к основанию $AC$; угол $BAK=30^\circ$, поэтому $BK=AB\sin30^\circ=4\sqrt{10}$. Пусть $BM$ — перпендикуляр к плоскости $\alpha$; по теореме о трёх перпендикулярах $\angle BKM=30^\circ$ — линейный угол двугранного. Тогда $BM=BK\sin30^\circ=2\sqrt{10}$ и $BM^{2}=40.$`,
|
||
ref: 'Латотин «Геометрия, 10 кл.», разд. 3, § 10' },
|
||
|
||
{ idx: 27, type: 'open', topic: 'equations', subtopic: 'eq-logarithmic', diff: 4,
|
||
text: R`Найдите сумму всех целых решений неравенства $\log_{\frac16}\dfrac{x-7}{x-11}\ge0$ на промежутке $(-11;12)$.`,
|
||
answer: '-34',
|
||
sol: R`Так как $0=\log_{\frac16}1$, а основание $\dfrac16<1$ (функция убывает), неравенство равносильно системе $\begin{cases}\dfrac{x-7}{x-11}\le1,\\[4pt]\dfrac{x-7}{x-11}>0.\end{cases}$ Первое неравенство сводится к $\dfrac{4}{x-11}\le0$, то есть $x<11$; второе даёт $x<7$ или $x>11$. Решение системы — луч $(-\infty;7)$. Пересечение с $(-11;12)$ — интервал $(-11;7)$; сумма целых чисел из него ($-10,\ldots,6$) равна $-34.$`,
|
||
ref: 'Арефьева «Алгебра, 11 кл.», гл. 3, § 10' },
|
||
|
||
{ idx: 28, type: 'open', topic: 'equations', subtopic: 'eq-irrational', diff: 3,
|
||
text: R`Найдите сумму квадратов корней уравнения $x^{2}+3x-\sqrt{x^{2}+3x+9}=3$.`,
|
||
answer: '23',
|
||
sol: R`Преобразуем к виду $x^{2}+3x+9-\sqrt{x^{2}+3x+9}-12=0$. Пусть $t=\sqrt{x^{2}+3x+9}\ge0$, тогда $t^{2}-t-12=0$, $t=4$ (корень $t=-3$ отброшен). Значит, $x^{2}+3x+9=16$, $x^{2}+3x-7=0$. По теореме Виета $x_1+x_2=-3$, $x_1x_2=-7$, поэтому $x_1^{2}+x_2^{2}=(x_1+x_2)^{2}-2x_1x_2=9+14=23.$`,
|
||
ref: 'Арефьева «Алгебра, 10 кл.», гл. 2, § 17' },
|
||
|
||
{ idx: 29, type: 'open', topic: 'functions', subtopic: 'fn-derivative', diff: 4,
|
||
text: R`Найдите сумму всех целых чисел из промежутков возрастания функции $f(x)=\dfrac{33+2x^{2}}{2-x}$.`,
|
||
answer: '16',
|
||
sol: R`$D(f)=(-\infty;2)\cup(2;+\infty)$. Производная $f'(x)=\dfrac{-2x^{2}+8x+33}{(2-x)^{2}}$. Решая $f'(x)>0$, то есть $-2x^{2}+8x+33>0$, получаем $x\in\left(\dfrac{4-\sqrt{82}}{2};\dfrac{4+\sqrt{82}}{2}\right)$. С учётом $x\ne2$ функция возрастает на $\left[\dfrac{4-\sqrt{82}}{2};2\right)$ и $\left(2;\dfrac{4+\sqrt{82}}{2}\right]$. Целые из этих промежутков: $-2,\,-1,\,0,\,1,\,3,\,4,\,5,\,6$; их сумма равна $16.$`,
|
||
ref: 'Арефьева «Алгебра, 10 кл.», гл. 3, § 20' },
|
||
|
||
{ idx: 30, type: 'open', topic: 'stereometry', subtopic: 'ster-rotation', diff: 5,
|
||
text: R`Дана правильная шестиугольная пирамида $SABCDEF$, у которой угол между боковым ребром и плоскостью основания равен $\arccos\dfrac49$. Объём пирамиды $SABCDEF$ равен $18\sqrt{65}$. Найдите значение выражения $\dfrac{V}{\sqrt3\cdot\pi}$, где $V$ — объём шара, радиус которого равен длине бокового ребра пирамиды $SABCDEF$.`,
|
||
answer: '729',
|
||
sol: R`Пусть $O$ — центр основания, $SA=R$ — боковое ребро. Из прямоугольного треугольника $SOA$: $\cos\angle SAO=\dfrac{OA}{SA}=\dfrac49$, поэтому $SA=\dfrac94 OA$. Высота пирамиды $SO=\sqrt{SA^{2}-OA^{2}}=\dfrac{OA\sqrt{65}}{4}$. Для правильного шестиугольника $OA=AB$, а площадь основания $S_0=\dfrac{3\sqrt3}{2}AB^{2}$. Из формулы объёма $18\sqrt{65}=\dfrac13\cdot\dfrac{3\sqrt3}{2}AB^{2}\cdot\dfrac{AB\sqrt{65}}{4}$ получаем $AB^{3}=48\sqrt3$. Радиус шара $R=SA=\dfrac94\sqrt[3]{48\sqrt3}$, его объём $V=\dfrac43\pi R^{3}=\dfrac43\pi\cdot\dfrac{9^{3}}{4^{3}}\cdot48\sqrt3=729\sqrt3\,\pi$. Тогда $\dfrac{V}{\sqrt3\cdot\pi}=729.$`,
|
||
ref: 'Латотин «Геометрия, 11 кл.», разд. 2, § 3; разд. 3, § 6' },
|
||
];
|
||
|
||
/* ── Сборка solution_html ────────────────────────────────────────────────── */
|
||
function ansShowOf(t) {
|
||
if (t.ansShow != null) return t.ansShow;
|
||
if (t.type === 'mc') return `${t.answer})`;
|
||
return `$${t.answer}$`;
|
||
}
|
||
function buildSolution(t) {
|
||
const ans = ansShowOf(t);
|
||
let html = `${t.sol}<div class="sol-ans">Ответ: ${ans}</div>`;
|
||
if (t.ref) html += `<div class="sol-ref" style="margin-top:6px;font-size:.85em;opacity:.7">Учебник: ${t.ref}</div>`;
|
||
return html;
|
||
}
|
||
|
||
/* ── Самопроверка (повтор логики checkAnswerServer из exam-prep.js) ────────── */
|
||
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(userInput, canonical) {
|
||
if (userInput == null || canonical == null) return false;
|
||
const c = String(canonical).trim();
|
||
if (/^[а-д]$/.test(c)) return String(userInput).trim().toLowerCase() === c.toLowerCase();
|
||
if (/^[^;]+;[^;]+$/.test(c)) return false;
|
||
const cn = srvToNumber(c), un = srvToNumber(userInput);
|
||
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(`Дубль task_idx=${t.idx}`); seen.add(t.idx);
|
||
if (t.idx < 1 || t.idx > 30) problems.push(`task_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}: answer "${t.answer}" не проходит self-check (Unicode-минус? пробел?)`);
|
||
if (/−/.test(String(t.answer))) problems.push(`#${t.idx}: Unicode-минус в answer`);
|
||
}
|
||
|
||
/* ── Экспорт для тестов/тиража (без запуска main при require) ──────────────── */
|
||
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);
|
||
|
||
const track = db.prepare(`SELECT exam_key, variants_count FROM exam_tracks WHERE exam_key=?`).get(EXAM);
|
||
if (!track) { console.error(`✗ Трек '${EXAM}' не найден в exam_tracks. Прерывание.`); process.exit(1); }
|
||
|
||
/* ── DRY-RUN сводка ────────────────────────────────────────────────────────── */
|
||
console.log(`\n=== seed_ctmath_rt2324_e2v1 (${PROV}) variant=${VARIANT} ===`);
|
||
console.log(`Режим: ${APPLY ? 'APPLY (запись)' : 'DRY-RUN (только проверка)'}\n`);
|
||
|
||
const byType = TASKS.reduce((a, t) => (a[t.type] = (a[t.type] || 0) + 1, a), {});
|
||
console.log('Типы:', JSON.stringify(byType), '\n');
|
||
|
||
console.log('idx | type | subtopic | d | answer');
|
||
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)}`);
|
||
}
|
||
|
||
if (problems.length) {
|
||
console.error(`\n✗ ПРОБЛЕМЫ (${problems.length}):`);
|
||
problems.forEach(p => console.error(' - ' + p));
|
||
console.error('\nЗапись отменена из-за ошибок валидации.');
|
||
db.close();
|
||
process.exit(1);
|
||
}
|
||
console.log('\n✓ Валидация и self-check ответов пройдены (30/30).');
|
||
|
||
/* ── APPLY: upsert ─────────────────────────────────────────────────────────── */
|
||
if (!APPLY) {
|
||
console.log('\nDRY-RUN: ничего не записано. Для записи: node backend/scripts/seed_ctmath_rt2324_e2v1.js --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=? AND variant BETWEEN 101 AND 1999`).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}).`);
|
||
console.log(`✓ exam_tracks.variants_count = ${distinct} (различных вариантов).`);
|
||
console.log(`\nПробник доступен: /exam-prep/ctmath → «Варианты» → «РТ-2023/24 · этап II».\n`);
|
||
} catch (e) {
|
||
db.exec('ROLLBACK');
|
||
console.error('\n✗ Ошибка записи, откат транзакции:', e.message);
|
||
process.exitCode = 1;
|
||
}
|
||
db.close();
|