Oxoron: ах да, это да :). У меня всегда есть привычка всё стараться представить геометрически. Не знаю, в школе всегда было плохо с математикой (с геометрией особенно, да), но с этим проблем не возникало, и я не подумал, что они могут быть. В любом случае, очень часто геометрический смысл вполне гуглится или объясняется в хороших учебниках.
Про один из таких ключиков: сильно переломным для меня моментом в анализе стало понимание предела по эпсилон-дельта. Я поразмыслил, как бы придумывал определение я, и внезапно вывел те самые эпсилон-дельта. Чуть позже, правда, оказалось, что там функции, а не бесконечно малые, а я вывел определение из нестандартного анализа :).
И ещё чуть позже стало понятно, что объяснять многие вещи анализа через бесконечно малые -- очень хорошая идея, сразу исчезают многие вопросы, например, та же производная -- отношение бесконечно малых, интеграл -- сумма бесконечно малых, интересно, почему так никто не делает?
// Кстати, чуть позже я пробовал объяснять эпсилон-дельта, а потом и сходимость рядов одной знакомой восьмикласснице-гуманитарию. Чисто из любопытства. Успешно.
kstyle: ага, читал. Всё для начального уровня, а если ТС в самом деле учился в матшколе, то к доказательствам ему не привыкать, я думаю.
Если вы об этом.
Моя начитанность гораздо-гораздо выше (не буду же я ему предлагать про сплайны или тензоры почитать, например), комментарий написан не с этой целью.
Я сразу проспойлерю: доказательство нужно, чтобы понимать, как теорема работает.
Некоторые очевидны просто: например, что, если непрерывная на ab функция в точке a меньше нуля, а в b больше, то где-то между ними она равна нулю. Это элементарно и очевидно геометрически.
В отличие от, например, того, что ряд сходится при отношении 2 соседних членов, стремящихся к числу меньше 1. Вообще неочевидно. Пока не прочитаешь доказательство и не поймёшь, что там сравнивается с прогрессией.
Ivanq: ну, например, добавить в регулярку операторы с более низким приоритетом (самый высокий -- все остальные операторы):
/\s*([^#\+-\/\*\&\|]+)\s*##\s*([^#\+-\/\*\&\|]+)\s*/g
Ivanq: самое простое - регулярками.
var str = 'a ## b + c';
str = str.replace(/\s*([^#]+)\s*##\s*([^#]+)\s*/g, 'sharp($1, $2)');
// str = 'sharp(a, b + c)
Просто заменяете оператор (здесь - ##) на вызов функции (здесь - sharp).
А далее определяете функцию, и в ней уже обрабатываете. Только нужно учесть, здесь получится самый низкий приоритет оператора ("a + b ## c" -> "sharp(a + b, c)").
Про один из таких ключиков: сильно переломным для меня моментом в анализе стало понимание предела по эпсилон-дельта. Я поразмыслил, как бы придумывал определение я, и внезапно вывел те самые эпсилон-дельта. Чуть позже, правда, оказалось, что там функции, а не бесконечно малые, а я вывел определение из нестандартного анализа :).
И ещё чуть позже стало понятно, что объяснять многие вещи анализа через бесконечно малые -- очень хорошая идея, сразу исчезают многие вопросы, например, та же производная -- отношение бесконечно малых, интеграл -- сумма бесконечно малых, интересно, почему так никто не делает?
// Кстати, чуть позже я пробовал объяснять эпсилон-дельта, а потом и сходимость рядов одной знакомой восьмикласснице-гуманитарию. Чисто из любопытства. Успешно.