Как и где можно применить дискретную математику в программировании?
Очень часто слышу о том, что дискретная математика крайне необходима программисту, но не увидел где бы то ни было четко аргументированного ответа с примерами, зачем она нужна и где применяется.
Посему, хочу попросить гуру программирования или просто прошаренных в этой области людей привести либо учебные материалы (можно и на русском и на английском), либо примеры из жизни, где будет желательно в деталях объясняться, как именно применяется этот раздел математики.
Убедительная просьба воздержаться от комментариев об очевидности данного вопроса, т.к. для меня он не очевиден и я бы хотел разобраться в нем.
- Вопрос задан более трёх лет назад
- 4855 просмотров
Комментировать
Решения вопроса 1

Software Engineer
Есть такая книга Дискретная математика для программистов. Там по моему в конце каждой главы применение выбранной темы в программировании.
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 4
if (c == ‘ ‘ || c == ‘\n’ || c == ‘\t’)
(из классики: K-R).
Ответ написан более трёх лет назад
Нравится 1 6 комментариев
А по-моему, это хороший пример для единорога с радугой.
Mercury13: Если напоминает единорога-педераста, то я в этом не виноват. Идите дискретку учить.
Имеется в виду PVS-Studio.
Код, возможно, с ошибкой, и разработчики PVS нашли закон: если в размноженном коде ошибка, вероятность 50%, что в последней строке.
Mercury13: Не знаю, что такое этот PVS-Studio (виндовое что-то?).
А код этот из классической книги, которую вы, похоже, не читали.
Не читал.
Программа статического анализа кода на Си.
Действительно в конце знак присваивания, а не равенства?
Mercury13: Ну так советую прочесть. Классика не только языка C, но вообще же культовая книга CS.
Конечно, равенство. Не заметил опечатку в источнике, откуда скопировал. Исправлено.
Андрей @VladimirAndreev
php web dev
в логистике, например..
маршрут найти, или алгоритм загрузки машины с учетом маршрута, чтоб максимально за раз перевезти.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Владимир Мартьянов @vilgeforce
Раздолбай и программист
Криптография, например.
Ответ написан более трёх лет назад
StepanZharychev @StepanZharychev Автор вопроса
Если не затруднит можете привести какой-нибудь простенький пример?
Владимир Мартьянов @vilgeforce
StepanZharychev: Если ВАС не затруднит поищите описание простейших шифров и попробуйте там найти элементы дискретной математики. Очень, знаете, помогает пытаться искать ответ самому, после того как дали наводку.
Программист на «си с крестами» и не только
В программу дискретной математики моего факультета входили…
• теория множеств
• теория графов
• комбинаторика
• алгебра логики, исчисление высказываний
• теория автоматов
Теория множеств — это основа ВСЕЙ университетской математики. Не зря её повторяли ещё и на муть-анализе.
К тому же в теории множеств есть два классных понятия — отношение эквивалентности и отношение порядка. Операции == и Соответствие везде определённое, функциональное, сюръективное, инъективное, биективное. Теория баз данных. Допустим у нас есть сотрудник и телефон, как они соотносятся? У всех ли сотрудников есть телефоны? Бывает ли у сотрудника два телефона? У всех ли телефонов есть сотрудники? Бывает ли у телефона два сотрудника? Ну а биективное — это соответствие «1:1».
Теория графов — понятное дело, в алгоритмах на сетях. Создание, уничтожение, обход, поиск пути…
Комбинаторика — это а) количество элементов в том или ином конечном множестве; б) способы перебрать их все. Например, мне реально приходилось перебирать комбинации из N элементов не более чем по M. Нерекурсивно.
Алгебра логики — это основа работы компьютеров. Когда булевское условие многоэтажное — как записать его в понятном виде и как его упростить?
Теория автоматов — это крайне упрощённый принцип работы процессоров. Поэтому если надо написать предельно простого вида виртуальную машину — см. конечные автоматы. А также автомат Мура — это лексический анализатор в любом языке программирования.
Где применяется дискретная математика
2. Новиков Ф.А. Дискретная математика для программистов: учебник для вузов. 2-е изд. – СПб.: Питер, 2007.
3. Крон Р.В., Попова С.В., Долгих Е.В., Смирнова Н.Б. Исследование операций: учебное пособие // Международный журнал экспериментального образования. – 2014. – № 11-1. – С. 118-119.
4. Крон Р.В., Попова С.В., Долгих Е.В., Смирнова Н.Б. Линейная алгебра: учебное пособие // Международный журнал экспериментального образования. – 2014. – № 11-1. – С. 115.
5. Крон Р.В., Попова С.В., Долгих Е.В., Смирнова Н.Б. Математика: учебное пособие // Международный журнал экспериментального образования. – 2014. – № 11-1. – С. 114-115.
6. Попова С.В., Смирнова Н.Б., Долгих Е.В., Крон Р.В. Агроинженерия: электронный учебно-методический комплекс // Международный журнал экспериментального образования. – 2009. – № S4. – С. 6-7.
7. Морозова О.В., Долгополова А.Ф., Попова С.В., Крон Р.В., Смирнова Н.Б., Долгих Е.В., Тынянко Н.Н. Комплект рабочих тетрадей по курсу высшей математики для экономических специальностей // Международный журнал экспериментального образования. – 2009. – № S4. – С. 22.
8. Немцова А.В., Попова С.В. Применение средств матричной алгебры для решения задач экономического содержания // Современные наукоемкие технологии. – 2014. – № 5-2. – С. 171-172.
9. Смирнова Н.Б., Попова С.В. Проблемы создания математических моделей эколого-экономических систем в процессе взаимодействия человека и окружающей среды // Культура и общество: история и современность: материалы III Всероссийской (с международным участием) науч.-практ. конф. Филиал РГСУ в г. Ставрополь; под редакцией О.Ю. Колосовой, Т.В. Вергун, Р.Ф. Гударенко. – Ставрополь, 2014. – С. 185-190.
10. Смирнова Н.Б., Лубенцева Е.Ф. Роль математики в современном обществе // Культура и общество: история и современность: материалы III Всероссийской (с международным участием) науч.-практ. конференции. Филиал РГСУ в г. Ставрополь; под редакцией О.Ю. Колосовой, Т.В. Вергун, Р.Ф. Гударенко. – Ставрополь, 2014. – С. 160-163.
11. Невидомская И.А., Копылова Е.П., Сотникова Ю.Д., Нивинская С.И. Применение дискретной математики при решении задач экономического содержания // Современные наукоемкие технологии. – 2014. – № 5-2. – С. 169-171.
12. Коннова Д.А., Леликова Е.И., Мелешко С.В. Взаимодействие математики с экономикой // Современные наукоемкие технологии. – 2014. – № 5-2. – С. 159-161.
Методы дискретной математики (методы формализованного представления) часто используются для анализа, исследования управленческих задач и их решения, а также для моделирования объектов исследования. В число этих методов входят методы, которые базируются на теоретико-множественных представлениях, математической логике, графах и других разделах математики.
Методы дискретной математики применяются в таких отраслях экономики, как математическое моделирование, логистика, эконометрика.
В эконометрике, например, используются булевские переменные для построения регрессионных моделей по неоднородным данным и для анализа регрессионных моделей с переменной структурой.
В данном случае исследуется только одно уравнение регрессии, в которое добавляются булевские переменные, характеризующие изучаемый фактор. Этим методом очень удобно пользоваться, если есть необходимость установить зависимость модели от какого-либо фактора.
Если в логистике требуется задать маршруты или описать потоки, то удобнее всего будет применить теорию графов. Здесь схему дорог мы можем изобразить, как ориентированный граф, и далее выбрать самый короткий маршрут.
Что же касается теории нечетких множеств, то с ее помощью можно правильно сделать выбор в пользу конкурентоспособного товара или услуги методом нечеткого предпочтения, поэтому эта теория используется в маркетологии, когда нужно проанализировать рынки экономических благ.
Рассмотрим практическое применение Жадного алгоритма, который заключается в принятии локально оптимальных решений на каждом этапе, допуская, что конечное решение также окажется оптимальным. В этом алгоритме пересеклись интересы дискретной математики и исследования операций.
Пусть нам дана задача: в городе Невинномысске находятся заводы. Они поставляют свою продукцию в магазины, кафе и аптеки этого города. Специалисты определили возможные дорожные маршруты для того, чтобы проложить все коммуникации, и выяснили, сколько денежных средств потребуется для создания коммуникаций для каждой трассы. Итак, проложить коммуникаций для дороги между фабрикой одежды и магазином обуви составляет 15 у.е., между фабрикой одежды и мебельным заводом – 85 у.е., между фабрикой одежды и кондитерской фабрикой составляет 20 у.е., между магазином обуви и мебельным заводом – 25 у.е., между магазином обуви и обувным заводом – 65 у.е. Стоимость прокладки коммуникаций для трассы, которая соединяет кондитерскую фабрику и магазин продуктов – 5 у.е., между кондитерской фабрикой и рестораном – 50 у.е., между мебельным заводом и рестораном – 20 у.е., между магазином продуктов и хозяйственным магазином составляет 20 у.е., между хозяйственным магазином и обувным заводом – 25 у.е, между хозяйственным магазином и рестораном – 35 у.е., между обувным заводом и овощным магазином – 15 у.е, между обувным заводом и аптекой составляет 40 у.е., между рестораном и аптекой – 10 у.е., между овощным магазином и торговым центром – 20 у.е., между аптекой и металлургическим заводом составляет 30 у.е, между аптекой и торговым центром – 45 у.е., между металлургическим заводом и торговым центром, – 25 у.е. Необходимо найти такую структуру сети, при которой коммуникации связали бы все пункты, а затраты на прокладку этих коммуникаций были бы минимальны.
Введём обозначения: V1 – фабрика одежды, V2 – магазин обуви, V3 – кондитерская фабрика, V4 – мебельный завод, V5 – магазин продуктов, V6 – хозяйственный магазин, V7 – обувной завод, V8 – ресторан, V9 – овощной магазин, V10 – аптека, V11 – металлургический завод, V12 – торговый центр.
При создании графической интерпретации данной модели нам становится понятно, что получился граф, который содержит 12 вершин и 18 ребер.
Для решения задачи необходимо дерево покрытия минимального веса. Эта задача решается алгоритмом Краскала – разновидностью «жадного» алгоритма.
Пусть имеется конечное непустое множество
,
– функция, которая ставит в соответствие каждому элементу
этого множества неотрицательное действительное число,
– вес элемента
и семейство
. Вес
найдем сложением весов всех элементов множества
. Нам нужно из данного семейства выбрать непустое подмножество с наименьшим весом.

Всем пунктам сети поставим в соответствие вершины графа , а всем ребрам графа поставим в соответствие число, которое равно сумме денежных средств, необходимых для строительства соответствующей коммуникации, связывающей объекты.
Из всех ребер выбирается ребро с наименьшим весом (исходя из алгоритма Краскала). В нашем случае таким ребром является ребро
, получаем граф
. Далее строится граф
, равный сумме
, где
– ребро, которое имеет самый маленький вес среди тех ребер, которые не входят в граф
, и не составляющий циклов с ребрами
,
. Граф
находится сложением
и
, где
. Аналогично находим графы
– T11.
, где
.
, где
.
, где
.
, где
.
, где
.
, где
.
Таким образом, мы нашли минимальное дерево покрытия взвешенного графа, а значит, определили оптимальную структуру сети, в которой денежные средства, которые необходимо потратить на прокладку коммуникаций, рассчитываются следующим образом: 5+10+15+15+20+20+20+20+25+25+25=200.
Из всех возможных затрат эта сумма является наименьшей.
Итак, при прокладке коммуникационной сети, которая должна соединить все указанные объекты, затрачивается 200 у.е. Коммуникации будут проложены между следующими объектами: аптека – ресторан – мебельный завод – магазин обуви – фабрика одежды – кондитерская фабрика – магазин продуктов – хозяйственный магазин – обувной завод – овощной магазин – торговый центр – металлургический завод.
Разберем задачу Коммивояжера как ещё один пример применения средств дискретной математики в экономике.
Представителю страховой фирмы необходимо выехать из Ставрополя, объехать 6 населенных пунктов и вернуться назад. Между пунктами проложены дороги.
Расстояние между Ставрополем и Михайловском составляет 6 км, между Ставрополем и Пелагиадой – 7 км, между Ставрополем и Надеждой расстояние составляет 20 км, между Ставрополем и Татаркой – 12 км, между Ставрополем и Рождественским – 10 км. Между Михайловском и Пелагиадой расстояние составляет 5 км, между Михайловском и Надеждой – 7 км, между Михайловском и Татаркой – 9 км, между Михайловском и Рождественским – 16 км. Между Пелагиадой и Надеждой расстояние составляет 4 км, между Пелагиадой и Татаркой – 10 км, между Пелагиадой и Рождественским – 12 км. Между Надеждой и Татаркой расстояние – 3 км, между Надеждой и Рождественским – 15 км. Между Татаркой и Надеждой – 6 км, между Татаркой и Рождественским – 4 км, между Рождественским и Пелагиадой – 11 км, между Рождественским и Татаркой – 21 км. Представитель страховой фирмы должен объехать все порученные ему пункты по одному разу и вернуться назад за самый короткий срок или с наименьшими затратами на проезд.
Для решения данной задачи построим матрицу А, отображающую расстояние между городами i и j, при этом
. Если
, то ставим символ
, так как такой дороги не существует. В нашем случае матрица примет вид:

Матрица A строится для того, чтобы в каждой строке и в каждом столбце получить не менее одного кратчайшего маршрута (нулевого приведенного значения). Для этого в каждой строке матрицы A от каждого элемента мы вычитаем значение минимального элемента этой строки. В результате получим:

Вычисляем теперь коэффициент приведения. Он равен сумме всех минимальных элементов матрицы A, которые были вычтены из строк и столбцов:
kпр = 6 + 5 + 4 + 3 + 4 + 10 = 20.
Вычисляем коэффициенты значимости для каждого занулившегося элемента.
Теперь из матрицы нужно вычеркнуть строку и столбец, в которых находится элемент с наибольшим коэффициентом значимости. В нашем случае таким элементом является а56: коэффициент значимости равен 6. Для элемента а56 установим значение 1: а56 = 1.
После преобразований получим:

Опять вычисляем коэффициенты значимости:
Матрица уменьшается в размере:

Для новой матрицы находим коэффициенты значимости:
Теперь матрица запишется в виде:

Коэффициенты значимости последней матрицы:
Выбираем элементы матрицы с наибольшими коэффициентами значимости: а56, а45, а34, а12, а61, а23, их индексы указывают нам те рёбра, которые должны войти в маршрут.
Таким образом, в маршрут представителя страховой фирмы вошли ребра: , , , , , . Все вершины (пункты) соединились.
Длина маршрута составляет:
4 + 3 + 4 + 6 + 10 + 5 = 32.
Насколько программисту необходима математика для успешной работы
Математика не всегда нужна в работе, но пригодится для развития личностных качеств.

Анастасия Хамидулина
Автор статьи
9 августа 2022 в 12:24
Математика прокачивает личностные качества: развивает память, мышление, улучшает концентрацию и интуицию. Поэтому ее стоит изучать не столько ради кода, сколько для развития.
✅ Концентрация. Программисты не только пишут, но и отлаживают его — проверяют на ошибки. Порой это занимает часы, а то и дни. Отвлекаться нельзя — легко пропустить баг.
Хорошо тренируют концентрацию математические задачи. Приходится держать в уме цифры, формулы, переменные. А еще возвращаться в начало уравнения и делать промежуточные расчеты. Стоит отвлечься — и вылезет ошибка.
✅ Терпение и настойчивость. Нужны при поиске ошибок в программе. Иногда приходится тестировать код раз за разом. Если уже через пару часов работы хочется всё бросить — скорее всего, с терпением беда. Его надо тренировать.
В математике решение тоже не всегда приходит с первого раза. А бывает, решаешь-решаешь, а в конце — тупик: всё неверно. Надо перечеркнуть и начать с начала. Но чем больше практики, тем проще относишься к таким ситуациям.
✅ Оперативная память. По-другому — умение держать в голове много разной информации.
Разработчик редко пишет программу целиком. Обычно сначала один кусочек кода, потом другой, а затем собирает их вместе. Когда работает над вторым, важно не забыть, что писал в первом. Иначе легко ошибиться: начнется сборка программы, и что-то не будет работать.
В математике оперативную память используют везде. Например, когда делают промежуточные расчеты, держат в голове разные формулы, продумывают решение следующей части уравнения.
✅ Интуиция. Люди, которые постоянно решают математические задачи, учатся находить закономерности. В дальнейшем, даже если попадется новая задача, чутье подскажет, как ее решить.
В IT интуиция нужна, когда ищешь решение задачи. Например, чтобы разработать алгоритм сортировки данных. Если чутье развито, не придется тратить часы, чтобы опробовать все возможные варианты.
Какую математику нужно знать программисту и для каких задач
Математика — это не один большой раздел науки, а несколько. Какие-то простые, их используются все — например, когда складывают или вычитают. Другие — сложные и нужные только узким спецам.
♟ Логика. Базовые знания логики — так называемую булеву алгебру — используют почти все программисты. Но это несложный раздел математики, изучить его можно самостоятельно.
Глубокие знания нужны айтишникам, которые работают с искусственным интеллектом, например с поисковиками. Они пишут программы, которые обрабатывают информацию, а потом делают из нее вывод. Например, какие страницы показать в браузере, когда человек ищет рецепт или расписание автобуса. Всё это работает на математической логике.
Еще продвинутые разделы нужны спецам, которые работают с базами данных — хранилищами информации. Чтобы вытащить конкретные данные, их надо отсортировать. Это делают через язык запросов SQL.
Узнайте, как решать бизнес-задачи с помощью SQL, на курсе Skypro. За два месяца научитесь извлекать информацию из баз данных и глубже анализировать поведение пользователей, проводить аналитические исследования и находить инсайты. Поймете, как улучшить сайт или приложение через грамотную работу с базами данных.
На час теории — пять часов практики. С начала курса будете решать задачи в популярном интерпретаторе Jupyter Notebook. Это настоящая среда разработки, которую вы сможете использовать и для своей работы.
Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

Математический анализ и дискретная математика. Матанализ используют дата-сайентисты — те, кто работает с большими данными. А еще спецы, которые занимаются машинным обучением, анализируют массивы данных, делают прогнозы.
Дискретная математика нужна, чтобы писать базы данных и создавать поисковые системы. Еще — для логистики и построения маршрутов.
Линейная алгебра. Раздел математики о векторах, векторных пространствах, координатах и расчетах. В программировании линейную алгебру используют дата-сайентисты при разработке алгоритмов машинного обучения и искусственного интеллекта. А еще разработчики игр, чтобы перемещать в игровом пространстве персонажей, менять положение камеры, кнопок и мыши.
Комбинаторика и статистика. Комбинаторика вычисляет количество возможных комбинаций, которые приведут к достижению цели. Ее используют спецы, которые занимаются маршрутизацией в сетях, разрабатывают искусственные нейронные сети и интеллект.
Статистика — это математика, в которой данные собирают, а потом исследуют. Ее используют разработчики программ и приложений, дата-сайентисты и аналитики данных, когда проводят исследования и пытаются найти закономерности.
Теория алгоритмов. Этот раздел математики изучает общие свойства и закономерности. Программисты используют алгоритмы, когда ищут ошибку в коде, сортируют данные. Такие задачи появляются у всех специалистов — от веб-разработчиков до дата-сайентистов.
В первом случае — чтобы обратиться к базам данных. Посчитать, сколько стоит заказ с учетом скидки, а затем показать финальную стоимость покупки. Во втором — чтобы написать программу распознавания лиц или номеров машин.
⛔ Криптография. Она помогает шифровать данные. В IT используют не саму криптографию, а криптографические алгоритмы. С ними работают спецы, которые защищают данные от атак, иначе говоря — занимаются кибербезопасностью. Через криптографические алгоритмы программисты создают специальные протоколы и мешают мошенникам перехватить данные.
«Если говорить про направления в программировании, то для фронтендера математика нужна. Как минимум для верстки. Для бэкендера тоже — где-то в меньшей степени, где-то в большей.
Например, в веб-разработке математика помогает работать с ресурсами системы: распределять нагрузку, выстраивать аналитику. В геймдев-разработке математика очень нужна для описания алгоритмов искусственного интеллекта, для работы с графикой, окружением.
Думаю, что потребность в математике определяется больше спецификой команды и ее задачами, нежели чем-то еще, но она есть практически везде»
Мнение практикующего разработчика
Кому вовсе не обязательна математика
В IT работают не только те, кто пишет код. Есть и те, кто участвует в разработке IT-продуктов, но обходится без математики.
Руководитель проектов. Организует команду так, чтобы работа над проектом двигалась и всё завершалось в срок.
Сильные качества — умение находить подход к людям и принимать решения в сложных ситуациях. Например, когда дедлайн близко, а главный разработчик свалился с температурой.
Математика руководителю проекта особо не нужна, разве что общие школьные навыки. Допустим, чтобы посчитать, сколько процентов задачи выполнено.
Менеджер по продукту. Исследует рынок, спрос, конкурентов, чтобы продукт не затерялся среди аналогов и нашел покупателей. Когда продукт вышел и уже продается, менеджер следит за результатами. Если нужно, вносит изменения в функции, дизайн и так далее.
Главные скилы продуктолога — умение строить гипотезы и принимать решения на основе данных, находить контакт с командой. А вот углубленную математику знать не надо, хватит и школьных знаний.
Маркетолог. Привлекает внимание потенциальных покупателей и превращает их в реальных. Специалист должен хорошо понимать, как люди выбирают продукт, на что обращают внимание. Еще анализировать конкурентов — видеть их недостатки и преимущества.
Среди сильных скилов — умение планировать, строить стратегии, разбираться в рекламных инструментах и метриках. Математику маркетолог использует, но базовую, на уровне школы, — например, чтобы посчитать, сколько стоит клик, или спланировать бюджет.
Технический писатель. Составляет инженерную документацию, инструкции, технические задания.
Среди главных скиллов — умение собрать различную информацию, проанализировать ее, осмыслить и написать текст понятным языком. Математика ему в этом совсем не нужна, даже школьная базовая.
«Всё зависит от того, что именно вам нужно. Если фронтенд, то вообще можно не думать о математике. В вопросах бэкендового уровня, особенно в базах данных, нужна. Если же делаете сайты, например, на WP, то есть простые коммерческие продукты — там математика уровня начальной школы.
Ребята, у которых я учился, были круты в математике. Но они говорили, что им для 95% задач она не нужна. Но для 5% всё же важна»
Где применяется дискретная математика
Дискретная математика кажется чем-то странным и не обычным. Что же изучает дискретная математика и для чего она нужна в современном мире? Как давно появилась эта наука? В этой статье ведётся объяснение, что такое дискретная математика и её взаимосвязь с информатикой. Эти две науки тесно связанны друг с другом и, конечно, имеют много общего. Ещё здесь будут описаны отличия дискретной математики от математики в целом. Будет рассмотрена дискретная математика, как наука, и примеры её использования человеком в древние времена, а так же и на сегодняшний день. Использование дискретной математики в современных технологиях и повседневной жизни почти каждого из нас. Описание развития информатики и дискретной математики в ХХ–ХХI вв. Их актуальность в современном мире. Примеры использования этих наук и возможные перспективы развития в ближайшем будущем.

дискретная математика
математика
информатика
информация
ЭВМ (Электронно-вычислительная машина)
1. Мальцев И.А. Дискретная математика: учебное пособие. Лань. 2011.
2. Гулай Т.А., Долгополовой А.Ф., Мелешко С.В. Математические методы исследо-вания экономических процессов // Международный журнал экспериментального образования. 2016. № 12–1. С. 116–117.
3. Крон Р.В., Попова С.В., Смирнова Н.Б., Долгих Е.В. Линейная алгебра: учебное пособие для студентов вузов сельскохозяйственных, инженерно-технических и экономических направлений. М., 2015.
4. Смирнова Н.Б., Попова С.В. Основные принципы проектирования компьютерной математической модели // Сборник научных трудов по материалам Ежегодной 69-й научно-практической конференции, посвященной 75-летию СтГАУ. Ответ-ственный редактор: Кулиш Н.В. 2005. С. 185–189.
5. Бондаренко В.А., Цыплакова О.Н., Родина Е.В Использование компьютерных ма-тематических систем в обучении математике.// Информационные системы и тех-нологии как фактор развития экономики региона: сб. научных статей по материа-лам Международной НПК / Ставрополь: АГРУС Ставропольского ГАУ, 2013. С. 46–50.
6. Попова С.В. Формирование алгоритмической культуры у студентов на занятиях по математике // Экономика регионов России: анализ современного состояния и перспективы развития: Сборник научных трудов по материалам ежегодной 68-й научно-практической конференции. Ответственный редактор Кулиш Н.В. 2004. С. 423–426.
7. Попова С.В., Колодяжная Т.А. Применение алгоритмов при обучении математике в вузе // Моделирование производственных процессов и развитие информацион-ных систем: Даугавпилсский университет, Латвия, Европейский Союз Белорус-ский государственный университет, Беларусь Днепропетровский университет экономики и права, Украина Московский государственный университет им. М.В. Ломоносова, Россия Санкт-Петербургский государственный политехнический университет Северо-Кавказский государственный технический университет Став-ропольский государственный университет Ставропольский государственный аг-рарный университет. Ставрополь, 2011. С. 278–281.
8. Прогнозирование в регрессионном анализе при построении статистических моде-лей экономических задач с помощью программы Microsoft Excel / Гулай Т.А., Лит-вин Д.Б., Попова С.В., Мелешко С.В. / Экономика и предпринимательство. 2017. № 8–2 (85–2). С. 688–692.
9. Смирнова Н.Б., Попова С.В. Модели, подходы к классификации моделей // Эко-номика регионов России: анализ современного состояния и перспективы развития: сборник научных трудов по материалам Ежегодной 69-й научно-практической конференции, посвященной 75-летию СтГАУ. Ответственный редактор: Кулиш Н. В. 2005. С. 181–185.
10. Попова С.В., Смирнова Н.Б. Элементы алгоритмизации в процессе обучения ма-тематике в высшей школе // Современные проблемы развития экономики и соци-альной сферы: сборник материалов Международной научно-практической конфе-ренции, посвященной 75-летию Ставропольского государственного аграрного университета. Ответственный редактор: Н.В. Кулиш. 2005. С. 526–531.
Что же такое «Дискретная математика»? Чем она отличается от обычной математики? Почему имеет широкое применение в информатике? Будем разбираться в этих и других вопросах, касательно этой интересной и очень важной темы в современном мире [1].
Математика в переводе с греческого означает изучение, наука, исторически возникла на основе измерения формы объектов, подсчёта чего-либо и т.д. Люди считали овец в своих стадах, высчитывали сколько материала понадобится для строительства, сейчас математика используется во многих науках узкого и широкого направлениях: экономика, физика, астрономия, информатика и так далее [2].
Дискретная математика изучается столько же, сколько и обычная, частью которой и является. Термин «дискретный» означает прерывистый и имеет противоположный по свойствам термин «непрерывный».
Если открыть кран так, чтобы текла струя воды, то поток будет описывать некоторую непрерывную прямую. Если сделать так, чтобы из крана капали капли, то это будет дискретная совокупность. Причём не важно, как часто капают капли. Главное, что нас интересует, то, что через какое-то время появляется новая капля, которая не соединена с первой в пространстве. В математике нет чёткой границы между понятиями «дискретный» и «непрерывный».
Дискретная математика используется нами повседневно, мы совершаем расчёты, выводы и операции даже не подозревая, что это часть такой интересной науки. Школьные знания, которые просты и понятны нам, людям, которые уже не сидят за партой, предстают для нас с новыми названиями, описаниями с точки зрения высшей математики. Это лишний раз подтверждает, что дискретная математика позволяет решать не только простейшие задания, но и те, над которыми трудятся доктора наук [3].
На момент появления первых компьютеров большинство электронных устройств, а именно: радио, телевизоры, магнитофоны и другие, было аналоговым. Это значит, что в данных устройствах использовались непрерывные сигналы. А при проектировании подобных устройств использовались методы непрерывной математики.
Первые ЭВМ были невероятно большого размера, они занимали целые здания, и были исключением среди электронных устройств того времени потому, что в них как раз и нужна была дискретная математика. Со временем ЭВМ превратились из больших и пугающих машин в те, что могут помещаться в отдельной комнате, затем на рабочем столе, а после в обыденные и незаменимые «Мобильники». Теперь мы чуть ли не каждый день имеем дело с электроникой, использующей достижения дискретной математики. Почти все современные устройства являются цифровыми: от фотоаппаратов и видеокамер до интернета и спутникового телевидения. Уже полвека дискретная математика является важным компонентом компьютеров. А значит, она необходима и в информатике [4–6].
Информатика – это наука, которая изучает компьютер, автоматическую переработку информации, взаимодействие человека с компьютером.
Информация – это сведения об окружающем нас мире. С разных точек зрения, может быть рассмотрена по разному. Является функциональной и абстрактной, такой же, как категория материи, энергии и пространства, следовательно, информация тоже неисчерпаемая.
Информатика использовалась людьми с древних времён. Логика мышления компьютера не стала чем-то новым. Но то, что компьютер, в отличие от человека никогда не ошибается и справляется с рутиной работой с невероятной скоростью и без малейшей усталости, является тем, что упростило нашу жизнь. Таким образом, у нас появилось свободное время на новые духовные и культурные свершения.
Информатика стала отдельной наукой относительно недавно, потому что с появлением ЭВМ необходимость в специалистах, умеющих правильно обращаться с аппаратурой, стала важным критерием для работы с передовым оборудованием. В современном мире компьютеры и программы для них стали намного проще, и теперь многие люди являются пользователями-любителями. Но есть и те компьютеры, для которых нужны узкоспециализированные работники или другими словами пользователи-профессионалы. К примеру, они нужны для правильной эксплуатации таких устройств как: сонары на подводных лодках, солнечные панели на космических кораблях и лунных базах, роботы-спасатели, супер-компьютеры, устройства для информационной и компьютерной безопасности, и так далее [7, 8].
Как и информатика, дискретная математика помогает современному человеку находить общий язык с компьютером, программами. Эти две, относительно молодые, науки позволяют создавать «Умные» дома; машины, управляемые без человека; космические корабли и оборудование, для высадки на Марс и дальнейшего создания на нём колонии.
Информатика сейчас очень актуальная тема для исследования и создания всё более умных машин, роботов, программ, различных устройств.
Дискретная математика служит необходимым инструментом для реализации идей в информатике (и не только).
Такой раздел дискретной математики как теория множеств составляет базу, основу для изучения других разделов. Научившись составлять и задавать математически множества, элементы которых обладают характерным изучаемым свойством, в дальнейшем можно устанавливать, какие есть между ними отношения, выполнять операции над ними. В более сложных случаях применяют теорию нечётких множеств, применение которой позволяет правильно сделать выбор в пользу конкурентоспособного товара или услуги методом нечеткого предпочтения, поэтому эта теория используется в маркетологии, когда нужно проанализировать рынки экономических благ.
Математическая логика, теория предикатов, теория алгоритмов позволяют алгоритмизировать знания, накопленные математикой. Причём в дискретной математике есть базовые элементы, понятные и простые в применении, но есть и более сложные структуры, позволяющие математически точно отражать явления и процессы. Математическая логика нашла своё применение в различных областях деятельности человека, даже в тех, которые кажутся далёкими от математики – биологии, медицине, лингвистике, педагогике, психологии, экономике, технике, но, конечно же, стала базовым разделом дискретной математики в развитии вычислительной техники, в разработке искусственных языков для общения с компьютером. Средства математической логики позволяют решать логические задачи, имеющих много исходных условий, которые после перевода на язык алгебры логики становятся более обозримыми и удобными для дальнейшего анализа, приводящего к верному умозаключению.
Математическая логика непосредственно используется как для создания материальной части компьютера – «железа», так и для математического – программного обеспечения, то есть к релейно-контактным (переключательным) схемам и к языкам программирования и к самому процессу программирования и получающимся в результате этого программам. Математическая логика оказалась единственной математической наукой, методы которой стали мощнейшими инструментами познания во всех разделах информатики. Поэтому сколько-нибудь серьезное изучение информатики немыслимо без освоения основ математической логики.
Теория графов, математическая логика широко применяются в таких секторах экономики как эконометрика, логистика, математическое моделирование. Так в эконометрике, например, используются булевские переменные для построения регрессионных моделей по неоднородным данным и для анализа регрессионных моделей с переменной структурой. В логистике при необходимости задать маршруты или описать потоки, удобнее применить теорию графов, с помощью которой схему дорог можно изобразить, как ориентированный граф, и далее выбрать самый короткий маршрут. Теория графов позволяет описывать сетевые взаимодействия как на примитивном, бытовом уровне, так и при сетевом планировании огромных промышленных предприятий.
А такие разделы дискретной математики как булева алгебра, комбинаторика, различные математические алгоритмы, хэш-функции и квантовые алгоритмы позволяют шифровать и дешифровать огромное количество информации. Так в криптографии с помощью средств комбинаторики чаще всего просчитывается возможное число вариантов при исходных данных, а вот использование сложных хэш-функций приводит к невозможности по конечному результату – хэшу – вычислить начальный массив данных, обработанный хеш-функцией.
Комбинаторика является неотъемлемой частью создания искусственных нейронных сетей, способствующих развитию отраслей, связанных с искусственным интеллектом. Также применяется при анализе сложности различных алгоритмов, выборе оптимальной стратегии перебора.
Дискретная математика является основой проектирования многих электронных приборов. Появление математической теории управляющих систем стало новым шагом к продвижению новых разделов дискретной математики, таких как: теория сложности; теория надёжности схем; теория автоматов. Теория сложности говорит о том, что не все алгоритмы равны с точки зрения их практической пригодности и есть некая «функция сложности», которая «измеряет» качество этих алгоритмов. На базе теории алгоритмов возникла теория автоматов, то есть математических моделей, преобразующих дискретную информацию по шагам в дискретные моменты времени и формирующих получаемые результаты по шагам заданного алгоритма.
Методы дискретной математики и информатики дают возможность анализировать, исследовать и моделировать многие экономические, технические, технологические процессы.
Человек использует нужные ему инструменты для достижения всё более грандиозных проектов. Дискретная математика и информатика, в правильных руках, являются невероятно действенными и незаменимыми инструментами [9, 10].
Таким образом, мы получили ответы на поставленные вопросы и разобрались в некоторых тонкостях данных областей. Так же становится понятно, что данные темы лишь набирают обороты в современном мире и помогают учёным совершать новые открытия в разных областях, ведь компьютеры нужны и химикам, и археологам, и историкам, и многим исследователям других областей. Человечество открывает новое (науки, знания) и это новое помогает открыть нечто большее, что будет обыденным уже для следующих поколений.