@Urichat

Изучение математики через программирование, глупое решение?

Всем привет. Ну без нудных в школе плохо учился, щас вот за голову решил взяться.
Собственно сабж, есть ли такой вариант?
Просто решил сразу по хардкору идти решая Сканави для поступающих в вузы.
Решая на бумаге я не могу решить даже простого уравнения класса 9 иногда( редко конечно, но случалось и такое).
И тут мне в голову пришла мысль, ведь каждая задача это четкий алгоритм, значит можно попробовать решать ее как ее решают все нынешние программисты пройдя универ. На компьютере. Взял интерпритатор питона и обнаружи что следить за последовательностью действий автора при решении показательного примера мне куда легче. Сразу все более менее пошло по маслу, а вот на бумаге я теряю ход мысли, в чем причина я не знаю. При чем на компе приходится делать даже куда больше упрощений чем на бумаге. То есть алгоритм разростается на более мелкие куски. Опять же если мне так удобней и понятней можно ли так обучаться? Или однажды я просто упрусь в потолок и пойму, что все было зря? Ждет ли меня такой сюрприз. Вот вы же умные люди тут, математику знаете. Применяя ее в работе вы сначала на бумажке какое то сложное уравнение решаете, или сразу пишете код который его решает?
  • Вопрос задан
  • 1527 просмотров
Пригласить эксперта
Ответы на вопрос 7
AlexXYZ
@AlexXYZ
O Keep Clear O
Пока задача не решена у неё нет алгоритма решения.
Бывает, что задача не решается. В этом случае надо доказать, что решения нет.
Можно быть умным человеком и без знания математики.
В фильме "Западня" главный герой сказал: "Сюрпризы бывают всегда".
Бумага иногда помогает.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Сначала аналитическое решение, затем уже написание программы, причём с учётом точности вычислений на компьютере. Попробуйте запрограммировать в лоб, например, следующую формулу:
59dd2513d1baa803609526.gif
Ответ написан
angrySCV
@angrySCV
machine learning, programming, startuping
Я уверен что именно за таких подходом будущее (изучение например математики и физики через программирование). Описание процессов хорошо перекладывается на язык программирования. Сам язык "программирования" в отличии от классического языка "алгебры" например, имеет более прикладное и практическое применение, хотя фактически оба языка делают тоже самое -> тоесть описывают процесс/модель/взаимосвязи.
я например за собой тоже заметил, что для меня описание на языке программирования куда понятнее и яснее чем язык математики (просто изза того что я реже им пользуюсь, и хуже его понимаю)
При этом создавая программу, для решения например каких-то задач, я куда нагляднее вижу что и как происходит, могу проследить самостоятельно где у меня ошибка и тд.
Я уж не говорю о моделировании физических процессов.
Вменяемое понимание физики у меня пришло только через программирование разных игровых ботов и процессов.
======
По поводу процесса написания кода.
Если задача простая то у меня обычно сразу появляется план в голове, ну или минут через десять например.
В виде примерной схемы решения. Эту схему сразу набрасываю в коде, в виде абстракций, без четкой реализации, потом начинаю прорабатывать реализации.
Все схемы взаимосвязей (ониже формулы) стараюсь визуализировать в голове без бумажек (так быстрее и удобнее). Но иногда что-нибудь на бумажке набрасываю, если не могу в голове все представить.
Язык математики мало использую (только для описания простых взаимосвязей, типа там а=2б и тд), но вот передовые исследования приходится читать на математическом языке, что признаюсь дается мне с трудом. Но меня это не парит, тк всеже я программист а не математик - у меня первично программирование и разработка программных решений, а не написание статей в научные журналы.
Ответ написан
Комментировать
Я бы предложил учить матешу по-старинке. По учебнику и решая примеры
Ответ написан
Комментировать
@red-barbarian
Вообще, это нормальная ситуация.)))
Я не понимал доказательства теорем из геометрии, не запоминал их, пока не стал разбивать их на части. докажем 1, докажем второе и т.д. Т.е. человеку что бы разобраться в некой системе нужно разбивать систему на части. Понимать как взаимодействуют эти части. Затем разбивать части на подчасти. и понимать их взаимодействие.
Тоже самое происходит в программировании. функция должна содержать части на одну ступень более низкого уровня чем сама. Человек это хорошо воспринимает и держит в рабочей памяти. Если части на несколько ступеней ниже, то возникает путаница. И сложность.
Для примера математическая индукция:
1+2+3+4... +n = n*(n+1)/2
общий алгоритм состоит из двух частей
есть некие частные аналогичные случаи P.
1. доказываем что если верно P(для числа m), то из него следует P(для числа m+1)
===n(n+1)/2+(n+1) = (n(n+1)+2(n+1))/2 = (n*n+3n+2)/2=(n+1)(n+2)/2
2. доказываем что справедлив начальный случай P(1)
===1(1+1)/2=1
На примере есть общая методология из двух частей. И есть на уровень ниже - доказательства частных формул===.
Так примерно и во всем. Так и надо запоминать решения. Части и взаимодействия. + подчасти и взаимодействия. +...
Для нетривиальных задач работа мозга немного по-другому. немного.
Для дальнейшего понимания как запоминать и решать рекомендую курс
https://www.coursera.org/learn/learning-how-to-learn
он бесплатный, на английском, но с русскими субтитрами.
Ведет его женщина математик, которая признается, что в школе у нее не было никаких способностей к математике. (так она думала)
у нее есть также книга переведенная на русский язык. в курсе есть ссылка.
удачи.
Ответ написан
Комментировать
tsarevfs
@tsarevfs
C++ developer
Я думаю это отличная идея. Правда это может оказаться не так просто, как кажется.
Запрограммировать решение уравнений типа квадратных, операции над матрицами вполне можно.
Ответ написан
Комментировать
Что вы считаете изучением математики? Интересуют какие-то разделы?

Математика состоит из множества разделов. Одни разделы ближе к программированию, другие совсем не пересекаются.

Например, линейную алгебру будет удобно изучать через программирование. Это компьютерная графика, игры и другие весёлые вещи. Рекомендую "Coding the Matrix: Linear Algebra through Applications to Computer Science".

С математическим анализом посложнее. Определитесь с целью. Для понимания нужно разбирать доказательства теорем, учиться рассуждать. В программировании можно реализовать численные алгоритмы для дифференцирования и интегрирования, но в понимании предмета это не поможет.

Попробуйте начать с линейной алгебры и классической механики в области разработки игр.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы