Чи можна вивчати математику за допомогою програмування, або ви повинні вивчити математику для програмування? [зачинено]


10

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

Моє запитання: чи я можу досягти кращих знань з математики, якщо я роблю якесь певне програмування, а якщо можливо, чи можлива і фізика? Або я помиляюся, і математику слід вивчити перед програмуванням, щоб покращити кодування?

PS: C ++ є кращою мовою.


5
Це працювало навпаки для мене. Я навчився комп’ютерному програмуванню, щоб допомогти мені краще працювати на уроках статистики випускників. Я виявив, що мені подобається програмування краще, ніж статистика, і змінив напрям кар’єри.
jfrankcarr



Королівської дороги до математики немає, сер.
Карл

Відповіді:


16

Ви навчитесь математиці чи фізиці з програмування лише в тому випадку, якщо ви фактично використовуєте програмування для вирішення задач з математики та фізики, хоча функціональні мови, такі як Haskell, мають в них поняття, які є дуже "математичними". Я б запропонував зайти на такий веб-сайт, як Академія Кан або Project Euler . Вирішіть проблеми там, використовуючи код, і ви вдосконалите як кодування, так і математичні навички одночасно.


5
+1 для обох ресурсів. Я мушу сказати, хоча я вперше ненавидів обчислення. Ніколи так добре не було в цьому. Оскільки вивчати Лісп, це просто має сенс . Свого роду веселощі теж.
Джейсон Льюїс

1
Якщо ви хочете спробувати Haskell, ви можете прочитати "Дорогу Haskell до логіки, математики та програмування": книга вчить Haskell займатися математикою та впроваджує всі математичні поняття по дорозі. Однак він зосереджується на математичній логіці, теорії чисел та деякій елементарній алгебрі. Обчислення згадується лише в самому кінці, якщо вам вдалося пройти все інше.
Вінсент Зоонекінд

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

Я особисто вважав Академію Хана дуже корисною для заповнення прогалин у моїх математичних знаннях.
jonners99

@ Джейсон Льюїс - Якщо ваша проблема - це більше стиль викладання, ніж матеріал, і ви хочете повних курсів, я курси MIT OpenCourseware відмінно підходять для багатьох математичних тем, включаючи числення та лінійну алгебру. Однак це не практично для перегляду однієї конкретної теми. Особливо мені сподобався курс лінійної алгебри. 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, як ми могли вирішити задачу?

ІМО, воно зводиться до: програмування не навчить вас математиці абсолютно, але це покращить набуті навички.


так, я зрозумів вашу думку, і я згоден з цим, виходячи з вашої відповіді, я буду вивчати математику, коли вирішувати проблеми програмування, однак я не зможу їх вирішити без знань, тому мені доведеться шукати рішення і це це те, що навчить мене математиці ...
SAFAD

2

У книзі SICP є дуже приємний розділ з математики. Але я б запропонував вам спробувати взяти лінійну алгебру, дискретну математику та «Калькулятор» як мінімум, якщо ви навчитесь лише з написання програм, ваша освіта, ймовірно, буде дуже глибокою, але не дуже широкою.


2

Я думаю, вони йдуть рука об руку. Міцне обґрунтування математичних методів відкриє варіанти програмування, яких у вас не було б, тим часом програмування може відкрити цікаві напрямки математичного вивчення.

Нещодавно я почав використовувати wxMaxima , приємний графічний інтерфейс до чудової відкритої програми Maxima Computer Algebra System (він же CAS , як комерційні системи Maple або Mathematica ).

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


2

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

Вам потрібна математика для "інформатики".

Якщо ви плануєте використовувати вже існуючі бібліотечні рішення для всього, то вам, мабуть, все одно, як вони працюють. Але якщо ви плануєте створювати власні алгоритми та структури даних, вам потрібно буде знати математику, оскільки CS сильно базується на математиці.


1

Якщо вам цікаво працювати в ІІ, обробці даних, фізичному моделюванні чи графіці, тоді вам потрібна математика. І навпаки, якщо тебе немає, я вважаю, що ти цього не робиш. Це випадок його використання чи втрати, навіщо вивчати французьку мову, якщо ви не хочете жити у Франції? Існує маса проблемних областей, які просто вимагають умовної логіки.

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


1

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

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

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


matlab корисний лише тоді, коли програміст заздалегідь має ґрунтовні математичні знання і він обмежений певною областю математики.
wirrbel

1

Математика - це наука з дуже широкою областю. Існують різні види математики, які явно не мають нічого спільного (крім математики).

Зараз програмування часто асоціюється з математикою, оскільки комп'ютери обчислюють та обчислюють, головне, що вони роблять це з цілими чи типовими даними з плаваючою точкою у дискретних кроках.

Є поля математики, які можна вивчити програмуванням, "наблизивши" математику до програми. Скажімо, ви вивчаєте диференційне обчислення та обчислюєте числові значення для невеликих інтервалів, таким чином "емулюючи" межа "чистої" математики.

Інші аспекти програмування легко відображаються на математику (можливо, це не частина вашого математичного класу середньої школи, але все-таки цінна математика, яка, можливо, не є частиною традиційної навчальної програми). Наприклад, теорія типів - або математична індукція.

Часто єдиним способом міркувати про "правильність" фрагмента коду є, наприклад, математична індукція. Таке міркування можна побачити особливо у функціональних мовах (рекурсія тощо).

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


0

Я не зміг знайти запис у щоденнику, але я пам'ятаю дизайнера "типу" з пізньої до першої епохи сплеску міхура (до '01 -ів), яка вела блог про виявлення любові до математики, перетворившись на веб-розробник і зрозумівши, що він насправді досить добре в цьому, хоча він і в середній школі завжди невдало провалювався і припускав, що він просто не той, хто коли-небудь буде хороший у математиці, а потім прив'язується до себе як до мистецького типу.

Ні, не я. Я просто ледав. Мені доводиться періодично навчатися, але це про це.

IMO, ви можете написати багато гідного коду без важких математичних знань, поки не зможете.

Однак, що програмування МОЖЕ зробити для тих, хто цікавиться цим розумом, це допомогти вам зрозуміти, чи є ви такою людиною чи такою людиною, і надати вам необхідні інструменти, щоб просто спробувати речі самостійно дізнайтеся, як далеко ваші інтереси відведуть вас у даній галузі дослідження.

І звичайно, все, що ми робимо, пов’язане в хіп з математикою, тож ви можете виявити, що ви вже дізналися більше, ніж зрозуміли, коли робите речі, як дізнатися про те, про що йдеться у тому, що відбувається назад.


0

Ще один варіант - використовувати свою любов до програмування, щоб стимулювати бажання вивчати математику. Практично будь-що, як правило, стає легше вчитися, якщо ви вивчаєте це з певною проблемою, до якої хочете застосувати, і математика не є винятком. Вам просто потрібно з'ясувати важкі проблеми з програмуванням, які вас цікавлять, і використовувати їх як причину для вивчення пов'язаної математики. Навчання лінійної алгебри, щоб ви могли грати, наприклад, з графікою, або ймовірністю та статистикою для обробки зображень / типів комп'ютерного зору.

Я думаю, що ваш пробіг буде залежати від цього, оскільки різні люди мають різні способи навчання, але сідати та вивчати математику в рефераті заради вивчення математики для мене просто ніколи не працювало.


-2

Що ж, ви можете попросити учнів розв’язати деякі задачі з геометрії, як намалювати квадрат, п’ятикутник, шестикутник і коло зі скретчем. Киньте їм виклик на розробку рішень і НЕ відповідайте їм про те, як кодувати це. Нехай вони досліджують та тестують рішення. Принаймні, ви можете запитати такі речі, як сума кутів у багатокутниках. Тоді вони можуть будувати алгоритми та власні категорії.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.