Другие языки программирования и технологии

Каким образом программисты находят уравнения для вычисления значений?

Поясню. Вот есть две задачи: первая - улитка поднимается на высоту h за день D метров, но ночью улитка спит и сползает на N метров вниз. Узнать сколько дней улитка тратит на подъем h. А вторая задача узнать сумму чисел последовательности (ну как факториал, только вместо умножение суммирование) . Эти задачи достаточно легко найти циклами. Но для них решения достаточно лишь коротких формул: 1) result = (h - n) / (d - n) , а для 2) r = a*(a+1)/2
Каким образом находить подобные формулы самому? (А вторую я вообще по моему никогда не встречал и не пользовался). Ведь тут можно сказать что это алгоритмы но в виде формулы, и всплывать должны сами в голове. Это ведь не формула из уроков алгебры которые можно посидеть, вспомнить и оформить вставку переменных. Тут как бы человек человек сам генерирует формулу. Так вот нету ли литературы по вычислению, где поясняется об сути логики? Или это приходит с опытом изучения математики?
Вообще-то необходимую программистам математику изучают сначала в школе, потом в ВУЗ'е.

Ты в каком классе учишься? Вторая формула называется "сумма арифметической прогрессии" и её проходят именно в школе и именно на уроках алгебры: и саму формулу, и способ её получения. Первая же формула - элементарнейшая задача на смекалку, для решения которой достаточно арифметики и здравого смысла.

Но для прикладного программиста важнее знание не конкретных формул (их всегда можно посмотреть в справочнике), а способов манипулирования формулами: чтобы не ждать полчаса результат, который при правильной оптимизации можно получить за 2 секунды. Именно этому и учат в технических ВУЗ'ах.
КН
Кайыржан Нурсултан
80 601
Лучший ответ
Олег Кобызев уу
мда уж
понятно
пошёл перечитывать энциклопедию школьника
А так я уже не учусь давно
Спасибо за пояснение
Программист не генерирует формулу сам. Если что-то имеет (а очень часто имеет) отношение к математике, он лезет в математические справочники. Там сотни подобных формул. Естественно, программист наизусть их не помнит, но он должен представлять, что примерно есть в этих справочниках, чтобы легко найти желаемое. Есть справочники по методам решения уравнений, по более сложным преобразованиям типа конформных преобразований, теории графов, различным исчислениям... Ну и кроме чисто математических формул, есть справочники по отдельной области математики - вычислительной математике, то есть по алгоритмам решения тех или иных задач типа динамического программирования, генерации нужных последовательностей чисел, ускорения перебора и т. п.
Sergey Mostipan
Sergey Mostipan
97 171
Задача с улиткой у меня была в первом классе (или втором) на контрольной впервые. Я её решил тогда самостоятельно. По поводу последовательности. Предположим, что тебе нужно сложить числа от 1 до 100. Теперь бери первое и последнее (сумму), второе и предпоследнее и так далее. Отсюда выходят все остальные формулы.