Форум программистов, компьютерный форум, киберфорум
Теория программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/40: Рейтинг темы: голосов - 40, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 2

Как связано программирование и математика?

22.12.2017, 16:00. Показов 8407. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я ученик 9 класса. Занялся изучением программирования 4 года назад на спецкурсах. В начале пути мне говорили многие, что программирование тесно связано с математикой, а кто-то говорил, что вообще без высшей математики суть программирования не понять.
На спецкурсах я изучал создание сайтов и программирование на java. В качестве проектов создавал сайты на php&mysql и js и простенькие игры на java, например, одним из моих проектов на java была "змейка". С пониманием языков программирования у меня не было никаких проблем. Математика при этом не была высшей (но с пониманием алгебры с геометрией у меня тоже все нормально).

Что за связь программирования и математики?
Самая очевидная в том, что там слова одинаковые есть (функция, переменная)? Или в чем?

Понятно, что нужны как минимум базовые понятия алгебры для того, чтобы , например, в игре расчитать размер объекта или при написании той же игры сделать расчеты все по математической модели какого то закона физики, что б вывести формулы расчета, что все в конечном итоге сводится к каким-то вычислениям, расчетам. Это ясно, без этого никак.
Но мне говорят, что ключ понимания сути программирования целиком и полностью в понимании математики, и лучше высшей математики. Что имеется в виду?

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

И так как связано программирование и математика?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.12.2017, 16:00
Ответы с готовыми решениями:

Программирование и математика
Добрый день! Мучает такой вопрос. По специальности я эникейщик, хочу обучиться на программиста, но по математике всегда были двойки, не...

Высшее образование (математика + программирование)
Здравствуйте! Закончил десятый класс, пытаюсь определиться с вузом. Раньше много времени уделял химии, планировал идти на химфак, пару...

С++ программирование массивы дискретная математика
Подсчитать число перестановок из чисел 1,2,…, N<=15, в которых разность между соседними числами больше 2. Помогите, пожалуйста, составить...

10
11 / 11 / 24
Регистрация: 12.12.2017
Сообщений: 131
Записей в блоге: 2
22.12.2017, 18:45
Ivan Pitersky
Связь конечно между математикой и программированием есть.
Что касается высшей математики... давайте я вам лучше приведу
аналогию.
Возьмём алгебру и геометрию. Есть между ними связь? Есть!
А нужна высшая математика? А это зависит от задачи.
Так вот, вы можете условно считать программирование ещё одной
ветвью математики. Здесь тоже применение алгебры, геометрии и
других разделов математики зависит от задачи.
Например вы пишете программу переводчик. Что вам нужно знать?
Русский язык и..., например, английский язык. А математика вам
практически не нужна. В общем всё зависит от задачи!
0
Модератор
Эксперт функциональных языков программирования
3137 / 2284 / 469
Регистрация: 26.03.2015
Сообщений: 8,888
23.12.2017, 00:24
Цитата Сообщение от Ли2 Посмотреть сообщение
Например вы пишете программу переводчик. Что вам нужно знать?
Русский язык и..., например, английский язык.
Не язык нужно знать, а лингвистику. Носитель русского языка разбирается в русском языке примерно как диванный болельщик в футболе.
1
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
23.12.2017, 11:39
Лучший ответ Сообщение было отмечено Ivan Pitersky как решение

Решение

Вопрос «нужна ли программисту математика?» всплывает регулярно, достаточно загуглить его и увидеть кучу материалов. Причем каждый отвечает исходя из своего субъективного опыта, а потому ответы везде разные.

Цитата Сообщение от Ivan Pitersky Посмотреть сообщение
Понятно, что нужны как минимум базовые понятия алгебры для того, чтобы , например, в игре расчитать размер объекта или при написании той же игры сделать расчеты все по математической модели какого то закона физики, что б вывести формулы расчета, что все в конечном итоге сводится к каким-то вычислениям, расчетам. Это ясно, без этого никак.
Цитата Сообщение от Ivan Pitersky Посмотреть сообщение
я надеюсь получить ответ с конкретными примерами решения каких-либо задач, где вот можно сказать явно, что "здесь без понимания математики никак"
Другими словами, программисту математика нужна в той степени, в которой требует конкретная решаемая задача. Причем не вся математика (всю и невозможно знать), а только некоторые разделы.

Разработка игр. Тут все очевидно: без алгебры/геометрии ни пушку навести на врага, ни освещенность просчитать.

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

В области анализа данных потребуются знания мат статистики и связанных вещей.

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

А вот если работа сводится к тому, чтобы пойти в базу, сделать выборку и разложить данные на веб-страничке с посещаемостью полтора человека в сутки — в этом случае задача особых познаний математики не потребует.

И здесь все просто и понятно. Но давай абстрагируемся от конкретных областей. Мы разрабатываем какой-то алгоритм. Зачем здесь математика?

Тут можно вспомнить, что мы работаем с различными алгоритмами и структурами данных. Они отличаются своими характеристиками (трудоемкость операций, затраты памяти), которые записываются в O-нотации: http://bigocheatsheet.com/. Нужно уметь выбирать наиболее оптимальные решения. Неплохо бы понимать, откуда берутся значения в круглых скобках и как анализировать собственные алгоритмы, см. асимптотический анализ.

Также регулярно работаем с такими структурами, как множества, графы, уже упомянутые автоматы. Что все это такое и что с ними можно делать рассматривается в дискретной математике.

Это было про алгоритмы. Абстрагируемся еще сильнее. Мы пишем какой-то код. Не важно, какой алгоритм он реализует. Он вообще может не делать ничего сложного. Возможно, в нем появятся логические выражения чуть сложнее, чем «if a < b». И здесь совсем не помешает знание булевой алгебры.

Еще пример. Тебя ведь не удивляет, что числа можно складывать и перемножать. А еще складывать можно строки. А перемножать вектора и матрицы, только реализуются эти операции совсем иначе. А еще есть комплексные числа со своими правилами. И, в общем-то, перемножать и складывать можно любые объекты, если определить для них, как это делать. Это одна из идей общей алгебры — мы можем работать с любыми объектами, если на их множестве определена какая-то алгебра и зафиксированы свойства операций. Ничего в программировании не напоминает? Интерфейсы, например. Можно ли писать код, не зная этого? Вполне. Не возьмусь говорить, что при этом потеряешь. Может быть, одну точку зрения на код. Насколько это критично — не знаю.

Цитата Сообщение от Ivan Pitersky Посмотреть сообщение
мне говорят, что ключ понимания сути программирования целиком и полностью в понимании математики, и лучше высшей математики. Что имеется в виду?
Здесь возникает вопрос к автору высказывания: что он считает сутью программирования? Без конкретики звучит как пафосное высказывание, которое сложно комментировать. Керниган вон говорил, что суть программирования — это управление сложностью. У меня это ассоциируется с проектированием абстракций и обобщением. Наверное, общая алгебра неплохо вправляет мозги в этом плане, но упарываться ей одной, не понимая цели, все-таки не стоит.
2
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
23.12.2017, 12:19
Лучший ответ Сообщение было отмечено Ivan Pitersky как решение

Решение

Пригодилось ли Вам как программисту математическое образование?
1
9948 / 2948 / 497
Регистрация: 05.10.2013
Сообщений: 8,019
Записей в блоге: 242
23.12.2017, 16:29
Цитата Сообщение от Ivan Pitersky Посмотреть сообщение
"здесь без понимания математики никак"
Я специализируюсь на программировании компьютерной графики, потому скажу только про себя, что без понимания математики никак, а точнее, в основном, без геометрии и линейной алгебры. Например, не пишутся шейдеры на языке GLSL без математики.
1
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 2
23.12.2017, 19:00  [ТС]
Большое спасибо за ответы!
0
Модератор
Эксперт функциональных языков программирования
3137 / 2284 / 469
Регистрация: 26.03.2015
Сообщений: 8,888
23.12.2017, 21:57
Математика, безусловно, нужна. Если человек не знает, сколько будет 2 + 1, вряд ли он сможет написать более-менее серьёзную программу. Уровень необходимых знаний математики определяется предметной областью.
1
74 / 1 / 1
Регистрация: 23.12.2017
Сообщений: 15
23.12.2017, 23:24
Лучший ответ Сообщение было отмечено Ivan Pitersky как решение

Решение

Тоже добавлю , хотя уже все тут сказано в принципе.

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

А сейчас таки да, все зависит от задачи. Если тебе нужно написать автокад - знания должны быть в широком спектре.
1
110 / 36 / 5
Регистрация: 27.12.2012
Сообщений: 130
12.01.2018, 19:58
Цитата Сообщение от 0x10 Посмотреть сообщение
Здесь возникает вопрос к автору высказывания: что он считает сутью программирования? Без конкретики звучит как пафосное высказывание, которое сложно комментировать
Наверное те, кто говорят это, имеют ввиду математический склад ума и логическое мышление. На прошлой неделе у нас была мини курс по Питону для новичков. 2 коллеги, которые бегают от математики и статистики как черт от ладана, не могли понять принцип написания программ даже для простеньких задач. Логика страдала сильно.
Цитата Сообщение от Ivan Pitersky Посмотреть сообщение
где вот можно сказать явно, что "здесь без понимания математики никак",
Статистика и анализ данных, что нынче модно называть Data science. Наука в этой части движется семимильными шагами. Если не понимаешь стат модель или метод, то ты никак его не запрограммируешь. Верно и обратное, если не умеешь программировать, то будешь работать только с эксель файлами и просторнейшими моделями. В Data Science нужен не только базовые курсы диксретной статистики, теории вероятности, статистический вывод, но и очень продвинутые знания для которых нужно 5-6 лет отучится в вузе (где преподают специалисты дела), а еще лучше дополнить PhD.

Взять тоже распознавание объектов и выбор пути на машинах с автопилотом. Это все нужно программировать и это одна сплошная математика.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
13.01.2018, 03:23
Цитата Сообщение от Ivan Pitersky Посмотреть сообщение
И так как связано программирование и математика?
Компьютер - это универсальная числодробилка. Все что он умеет делать - числодробить. Иллюзия что он умеет что то еще возникает исключительно в результате правильного числодробления.
Как можно пытаться организовать правильное числодробление без математики?

Добавлено через 2 минуты
Цитата Сообщение от Artem Jkl Посмотреть сообщение
Если тебе нужно написать автокад - знания должны быть в широком спектре.
В очень широком спектре разделов математики

Добавлено через 2 часа 51 минуту
Цитата Сообщение от Ivan Pitersky Посмотреть сообщение
Что за связь программирования и математики?
Самая очевидная в том, что там слова одинаковые есть (функция, переменная)? Или в чем?
В том что толковый программист это в первую очередь толковый математик. А отличие программиста от математика в том что вместо вывода формул на каждую мелочь, программист организовывает вычисления по общим формулам так,что создается иллюзия будто формулы вместо него выводит компьютер.

Добавлено через 4 минуты
Цитата Сообщение от Ivan Pitersky Посмотреть сообщение
Что имеется в виду?
Вот это и имеется. Если у остальных инженерных специальностей математику в ВУЗе учат полтора года одним предметом высшая математика, то у программистов все 5 лет по 2-3 предмета в семестр. При этом разделы такие что на кафедре вышки дай бог чтобы названия слышали. И это только азы того что реально нужно для разработки софта.

Добавлено через 4 минуты
Цитата Сообщение от Ivan Pitersky Посмотреть сообщение
в игре расчитать размер объекта
Форма объектов не исчерпывается прямоугольниками выровнянными по осям.Простейший пример - посчитать длину кривой. Решение этой задачи потребует применение криволинейного интеграла. Второй пример - посчитать количество треугольников необходимых для построения модели сферы. Решение этой задачи потребует использовать поверхностного интеграла.

Добавлено через 2 минуты
Цитата Сообщение от Ivan Pitersky Посмотреть сообщение
при написании той же игры сделать расчеты все по математической модели какого то закона физики
Это обычно интегрирование тех или иных диферренциальных уравнений. При этом схему решения придется еще и упростить так чтобы оно и считало с достаточной точностью для реализации эффекта и было пригодно к счету в реальном масштабе времени.

Добавлено через 2 минуты
Цитата Сообщение от 0x10 Посмотреть сообщение
А вот если работа сводится к тому, чтобы пойти в базу, сделать выборку и разложить данные на веб-страничке с посещаемостью полтора человека в сутки — в этом случае задача особых познаний математики не потребует.
А как же теория множеств? Если к примеру декартово произведение в SQL обозначается не так как в математике, это не означает что оно перестало быть декартовым произведением

Добавлено через 5 минут
Цитата Сообщение от vorobichek Посмотреть сообщение
Взять тоже распознавание объектов и выбор пути на машинах с автопилотом. Это все нужно программировать и это одна сплошная математика.
Это уже математика переросшая в разряд шаманства и чернокнижнечества.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2018, 03:23
Помогаю со студенческими работами здесь

Математика и программирование
Здравствуйте ув форумчани. Я студент первого курса института. По чуть-чуть изучаю язык С. Но перечитал очень много разных тем на форуме и...

Дискретная математика и программирование
Здравствуйте. Учусь на первом курсе в политехе на программиста. Мы изучаем в данный момент C++ Builder. Хотя это, наверно, не так важно... ...

Математика и Программирование Игр
Знание каких разделов математики позволят разрабатывать такие трёхмерные игры, как Quake 3, Team Fortress, Warsow? Есть ли люди, кто...

Объекты класса (математика, физика, программирование, линейная алгебра, математический анализ, теоретическая механика))
Для каждого класса описать поля, характеризующие объект, и методы, позволяющие заполнять и получать значения каждого из полей. выводить...

Как связано мастабирование страниц с media-queries ?
Привет. Как связано мастабирование страниц с media-queries ? @media only screen and (min-width: 500px) { body { background-color:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru