Можно ли изучать математику с помощью программирования, или вы должны изучать математику для программирования? [закрыто]


10

Я не лучший в математике, не очень ужасный, но ниже среднего, я всегда думал, чтобы улучшить свою математику, но школы и книги не делали работу, потому что мне скучно слишком быстро. Единственное, что мне не наскучило, это кодирование и игры, поэтому я подумал, что если кодирование программы, которая решает математические задачи, поможет мне лучше понять математику, большинство из этих проблем - это ограничения (исчисление), функции, дифференциальное исчисление и некоторые другие предметы (я уже сказал, что это не так хорошо), аналогичные предыдущим.

У меня вопрос: смогу ли я получить более глубокие знания по математике, если буду заниматься определенным программированием, и если это возможно, возможна ли физика и так? Или я ошибаюсь, и перед программированием нужно изучать математику, чтобы улучшить кодирование?

PS: C ++ является предпочтительным языком.


5
Это сработало для меня наоборот. Я изучил компьютерное программирование, чтобы помочь мне лучше работать на уроках статистики. Я обнаружил, что мне больше нравится программирование, чем статистика, и я сменил направление своей карьеры.
jfrankcarr



Королевской дороги к математике нет, сэр.
Карл

Ответы:


16

Вы будете изучать математику или физику из программирования только в том случае, если вы фактически используете программирование для решения математических и физических задач, хотя в таких функциональных языках, как Haskell, есть очень «математические» понятия. Я бы предложил посетить веб-сайт, такой как Kahn Academy или Project Euler . Решите проблемы с помощью кода, и вы улучшите свои навыки кодирования и математические навыки одновременно.


5
+1 за оба ресурса. Я должен сказать, однако, я ненавидел исчисление в первый раз. Никогда не делал это хорошо в этом, либо. Начиная с изучения Lisp, это просто имеет смысл . Вроде тоже весело.
Джейсон Льюис

1
Если вы хотите попробовать Haskell, вы можете прочитать «Дорога Haskell к логике, математике и программированию»: книга учит Haskell изучать математику и вводит все математические понятия по пути. Тем не менее, он сосредоточен на математической логике, теории чисел и некоторой элементарной алгебре. Исчисление упоминается только в самом конце, если вам удалось пройти через все остальное.
Винсент Zoonekynd

Я бы также предложил специализированные языки CAS, такие как Mathematica (дорого!), Maxima или Axiom (бесплатно). Как только вы получите представление о переписывании терминов, правилах и стратегиях, вся математика начнет обретать смысл.
SK-logic

Лично я нашел Академию Хана очень полезной для заполнения пробелов в моих знаниях по математике.
jonners99

@Jason Lewis - Если ваша задача заключается в том, чтобы учить больше, чем материал, и вы хотите получить полные курсы, то курсы OpenCourseware MIT отлично подходят для многих математических тем, включая исчисление и линейную алгебру. Хотя это не практично для пересмотра одной конкретной темы. Мне особенно понравился курс линейной алгебры. MIT OpenCourseware также очень хорошо подходит для некоторых тем в области компьютерных наук, особенно для двух курсов по алгоритмам и структурам данных. Никогда не было лучшего времени для обучения в своем собственном темпе с отличными бесплатными материалами.
Steve314

5

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


4

Это мое взятие ...

Программирование поможет проверить ваши знания

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

Например, предположим, вы хотели создать небольшую программу для вычисления значения C, заданного A и B, в рамках теоремы Пифагора. Как мы делаем это? Ну, мы знаем, что:

A^2 + B^2 = C^2

Итак, чтобы решить для C, мы имеем:

C = SQRT(A^2 + B^2)

Следовательно, программа может выглядеть примерно так (при условии правильных заголовков, это простой пример):

cout << "Enter value for A: " 
cin << valA;
cout << "Enter value for B: "
cin << valB;

float valC = sqrt(pow(valA, 2) + pow(valB, 2))
cout << "C = " << valC << "\n";

ОДНАКО...

Где и как вы получаете эти знания?

В предыдущем примере нам нужно было знать, как решить для C в уравнении. A^2 + B^2 = C^2.Если мы не знали квадратный корень обеих сторон, чтобы найти C, как мы могли бы решить проблему?

IMO, это сводится к следующему: программирование не научит вас абсолютно математике, но улучшит приобретенные вами навыки.


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

2

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


2

Я думаю, что они идут рука об руку. Твердое знание математических методов откроет возможности для программирования, которых у вас не было бы иначе, а программирование может открыть интересные возможности для математического изучения.

Недавно я начал использовать wxMaxima , хороший графический интерфейс для превосходной системы компьютерной алгебры Maxima с открытым исходным кодом (также называемой CAS , как коммерческие системы Maple или Mathematica ).

Сама по математике она ничего не научит, но она наверняка сделает игру с математикой более интересной и увлекательной, что само по себе может побудить вас узнать больше.


2

Вам не нужно много математики для "программирования".

Вам нужна математика для "информатики".

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


1

Если вы заинтересованы в работе над искусственным интеллектом, обработкой данных, физическим моделированием или графикой, вам нужна математика. И наоборот, если нет, то я думаю, что нет. Это тот случай, когда вы используете его или теряете его, зачем учить французский, если вы не хотите жить во Франции? Есть много проблемных областей, которые просто требуют условной логики.

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


1

Посмотрите на Matlab . Это язык, предназначенный для выполнения математических функций в коде.

вычислительная среда и язык программирования четвертого поколения ... MATLAB позволяет работать с матрицами, составлять графики функций и данных, реализовывать алгоритмы, создавать пользовательские интерфейсы и взаимодействовать с программами, написанными на других языках ...

Хотя MATLAB предназначен главным образом для числовых вычислений, дополнительный набор инструментов использует символьный движок MuPAD, позволяющий получить доступ к возможностям символьных вычислений. Дополнительный пакет, Simulink, добавляет графическое многодоменное моделирование и модельно-ориентированное проектирование для динамических и встроенных систем ...


Matlab полезен только тогда, когда программист заранее знает математические знания и ограничен определенной областью математики.
wirrbel

1

Математика - это наука с очень широкой областью. Существуют разные виды математики, которые явно не имеют ничего общего (кроме математики).

Теперь программирование часто ассоциируется с математикой, потому что компьютеры вычисляют и вычисляют, в основном они делают это с целочисленными типами данных или типами данных с плавающей запятой в дискретных шагах.

Есть области математики, которые вы можете изучать, программируя, «приближая» математику в программе. Допустим, вы изучаете дифференциальное исчисление и вычисляете числовые значения для небольших интервалов, тем самым «эмулируя» предел «чистой» математики.

Другие аспекты программирования легко сопоставляются с математикой (возможно, она не является частью вашего математического класса в старшей школе, но все же является ценной математикой, которая не входит в традиционную учебную программу). Теория типа для примера - или математическая индукция.

Часто единственным способом рассуждать о «правильности» фрагмента кода является, например, математическая индукция. Такое рассуждение особенно заметно в функциональных языках (рекурсия и т. Д.).

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


0

Я не смог найти запись в блоге, но я вспоминаю дизайнерский «шрифт» из поздней до первой эры пузыря (до '01-го), который писал в блоге об обнаружении любви к математике, став веб-разработчиком и осознавая, что он был на самом деле он был довольно хорош в этом, даже несмотря на то, что он всегда с треском проваливался в старших классах и полагал, что он просто не из тех, кто когда-либо будет хорош в математике, а затем считал себя хитрым типом.

Нет, не я. Мне было просто лень. Я должен переучивать триг иногда, но это все.

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

Однако то, что программирование МОЖЕТ сделать для любого, кто интересуется им с достаточным интересом, - это помочь вам преодолеть представление о том, являетесь ли вы этим человеком или таким человеком, и дать вам инструменты, необходимые для того, чтобы просто попробовать что-то узнайте сами, насколько далеко зайдут ваши интересы в данной области.

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


0

Другой вариант - использовать вашу любовь к программированию, чтобы стимулировать желание изучать математику. Практически все становится легче учиться, если вы изучаете его с определенной проблемой, к которой хотите применить, и математика не является исключением. Вам просто нужно выяснить сложные математические проблемы программирования, которые вас интересуют, и использовать их в качестве причины для изучения соответствующей математики. Изучение линейной алгебры, чтобы вы могли играть, например, с графикой или с вероятностью и статистикой для обработки изображений / компьютерного зрения.

Я думаю, что ваш пробег будет варьироваться в зависимости от этого, так как разные люди имеют разные способы изучения вещей, но сидеть и изучать математику в резюме для изучения математики просто никогда не работал для меня.


-2

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.