Pull to refresh

Comments 35

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

Я использовал генерацию формул для тестирования корректности алгоритма взятия производных и упрощения выражений. Ожидаемые значения брались из WolframAlpha с помощью API, а актуальные — из моего алгоритма. Подробней здесь: Математические выражения в .NET (разбор, дифференцирование, упрощение, дроби, компиляция).

Ничего себе вы заморочились… Интересно, почитаю!

Может я отстал от жизни, но как это посчитать?

Искусство создания примеров, это Искусство оно должно что то показывать. А случайный набор числе и действий это хаус.

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

как это посчитать?
Технически посчитать можно, если представить сумму в замкнутом виде: Sqrt(5.5)*(1 — a + b)*(a + b)/10, где a и b пределы суммирования. В итоге получим -6649*Sqrt(5.5)/1000.

Откуда у вас взялось значение 5.5?

А вообще да: можно обобщить любое вычисление, для этого нужно найти непрерывную функцию зависимости i-того значения от числа i. Для факториала, например, это гамма-функция. В данном случае все проще, так как формула суммы выражается через арифметическую прогрессию, в которую можно вставлять любые числа, не только целые.

Я бы сказал, что в данном случае это не имеет значения ибо тут идёт краткая презентация умений рисовать сложные выражения, а не математические изыскания
Вот если бы ещё скобки рисовались всегда нужного размера, было бы гораздо красивее и понятнее. А так получается какое-то нагромождение символов, цифр и операторов… А вообще идея интересная.

Ну так это дело наживное, так сказать). Можно поиграться с параметрами, сделать все попроще, получать что-то типа

Тогда неплохо было бы и размеры скобок подгонять для лучшей читаемости
К Вам, к Вам — в латехе есть возможность увеличения скобок, посмотрите на примеры
\[ ( \big( \Big( \bigg( \Bigg( \],

\[\left(
\left[
\left\langle
\left\{
\left\uparrow
\left\lceil
\left|
\left\lfloor
\right\rfloor
\right|
\right\rceil
\right\downarrow
\right\}
\right\rangle
\right]
\right)\]
Особенно здорово, если скобки автоматически подбирают свой размер под выражение, которое они окружают. Парные команды \left и \right включают режим
подобной подстройки.

Е.М. Балдин. Компьютерная типография LaTeX
Все равно выглядит не очень эстетично, да и смысл теряется

Прикольно! Гришка.рф вернул 404, впрочем, не удивительно… 8 лет статье.

Чот у меня какая-то убогая страница 404, надо бы переделать)

А я вот уже давно ищу какой-нибудь вменяемый генератор примеров по математике, чтобы своих школьников гонять дома дополнительно.


Пока это была арифметика первых классов — без проблем генерировал.


Но сейчас это 8-й и 9-й класс… Нагенерировать релевантных примеров становится не так-то и просто...


Может кто-то сталкивался с чем-то похожим?

А каких видов должны быть примеры? Наверное восьмиклассникам арифметика уже не нужна? Кастомные уравнения может быть? Ну например за 10 минут пишется штука, которая по n корням выдает многочлен, обладающий такими корнями.

Ну тут уже сложный вопрос. Возможно у меня мозги криво устроены, чтобы быстро решать такие задачки :-)


А темы постоянно новые. Это и квадратные уравнения. И системы уравнений. И тригонометрия.


Ну и алгебра с геометрией не за горами :-)


Вообще неплохая идея кому-нибудь для сайта. Генерировать по учебной программе примеры. И с разным уровнем сложности :-)


А то по программированию тренажёров уже пруд пруди на любой вкус, а по школьной программе как-то грустно...

Наляпал для многочленов


from IPython.display import display, Math
import random

def mutmul(arr, dep):
    if dep == 1:
        return sum(arr)
    r = []
    for i in range(len(arr)):
        r.append(arr[i] * mutmul(arr[i + 1:], dep-1))
    return sum(r)

def spow(v, p):
    if p == 0:
        return ""
    if p == 1:
        return v
    return v + "^" + str(p)

def polynom(roots):
    mroots = [-i for i in roots]
    coefs = [mutmul(mroots, i + 1) for i in range(len(mroots))]
    r = [spow("x", len(mroots))]
    for i, c in enumerate(coefs):
        s = str(c) + spow("x", len(coefs) - i - 1)
        r += [s]
    r = "+".join(r)
    r = r.replace("+-", "-")
    return r

for i in range(10):
    roots = [random.randint(-10, 10) for i in range(random.randint(1, 5))]
    display(Math("$" + polynom(roots) + "=0" + "$"))

Блин, спасибо!


Надо поподробнее проникнуться подходом. Полезно!


Ради такого и выучить таки Python не грех :-D

Вопрос в тому, кому эти примеры нужны в таких количествах, особенно в мире, где существует WolframAlpha.

Учителям, репетиторам, да и просто родителям, которые заботятся о будущем своих детей ;-)

Я имею в виду в более широком смысле: зачем решать десятки однотипных примеров, разница в которых только в числах? Зачем нужно больше 3-4 примеров квадратных уравнений?
  1. Не обязательно только в числах. Можно же и комбинировать темы между собой. Причём разнообразным образом.
  2. Разные дети усваивают по разному. Некоторым надо много попыток, прежде чем они смогут уверенно пользоваться конкретными приёмами
  3. Если надо нагенерить контрольную на целый класс? А если перездача и надо новые примеры?
  4. А если надо повторить материал, чтобы не забылся?

Короче моя практика показывает (хоть я и не учитель), что если примеры каждый раз разные и отличаются не "только числами", то результат гораздо выше. Но вот нагенерировать такие примеры не всегда так уж просто. И ладно я хоть ITшник. А как быть людям вообще далёким от IT, но желающим дать своим детям путёвку в жизнь?

Так в том-то и дело, что в школе обычно заваливают однотипными примерами (типа «реши 3 линейных системы» или «реши 3 квадратных уравнения»). Возможно, вы имели в виду что-то другое, но по начальному комментарию показалось, что вы хотите генерировать больше этих однотипных примеров.
Дочь легко считает два-три примера, потом «скисает», и банально «зевает».
Портянки нужны для автоматизма.
Но эти примеры очень простые, нужны скобки, комбинация скобок.
Не очень понял мысль, вроде как она подтверждает мою позицию по поводу того, что мучать детей однотипными заданиями непродуктивно. Или нет?
Sign up to leave a comment.

Articles