Математика і розробка: які знання допоможуть програмувати краще

Привіт! Мене звати Дмитро Ковригін, я відповідаю за iOS-розробку в tech/uklon. У мене немає профільної освіти у сфері розробки програмного забезпечення, і довгий час я думав, що будуватиму академічну кар’єру математика. Навіть навчався в аспірантурі за напрямом функціонального аналізу. Однак програмування було одним з моїх численних хобі, і в якийсь момент рішення було прийнято: змінити все кардинально на користь кар’єри в IT. Однак не варто поспішати з висновками, то рішення не було простим.

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

Вступ

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

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

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

Розділи математики, які знадобляться розробнику

Алгоритми

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

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

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

Комбінаторика

Перш ніж рухатися далі, потрібно розібратись з деякими поняттями комбінаторики. Наприклад, скільки існує варіантів розташувати в різному порядку n елементів. Або скільки існує варіантів обрати m елементів з n, зважаючи на порядок розташування між собою вибраних елементів і не зважаючи на нього? Скільки тест-кейсів додасть в регрешн-сьют n фіча-тоглів?
Вміння відповідати на подібні питання нам знадобиться, наприклад, для розрахунку ймовірностей дискретних подій.

Теорія ймовірностей

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

Теорія ігор

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

Теорія графів

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

Тригонометрія

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

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

Лінійна алгебра

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

Як більш просунутий приклад можна взяти доповнену реальність, адже робота з нею зводиться до маніпулювання тією ж 3D-сценою, де замість віртуальної камери маємо справжню.

Криптографія

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

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

Blockchain

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

Статистика

Детерміністичні алгоритми можуть багато чого корисного. Але вони не зможуть розпізнати об’єкт на фотографії, впізнати мелодію, розсортувати дані за неочевидними критеріями або пройти тест Тюрінга. Для цього нам знадобляться ML або AI із недетерміністичними алгоритмами, що формулюються в статистичних термінах.

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

У складніших сценаріях факторів, що впливають на результат, ставатиме все більше, а тренди вловити на око буде все складніше. Гарна новина в тому, що ітераційний процес підбору найкращих параметрів для найбільш підхожої моделі може бути автоматизований і продовжуватись, поки не досягне бажаного рівня впевненості. Це ми й називаємо навчанням моделі. А алгоритми розв’язання подібних задач будуть спиратися на поняття моди, медіани, математичного очікування, нормального розподілення, дисперсії тощо. Моє розуміння теми базується на курсі від Coursera.

Перетворення Фур’є

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

Теорія категорій

Розробники пишуть код, який компілюється або інтерпретується спеціальною програмою — компілятором або інтерпретатором відповідно. Але і ці спеціальні програми, своєю чергою, теж пишуть програмісти. І написання компілятора — ціла галузь в комп’ютерній науці, яка має свої теоретичні обґрунтування в теорії категорій. Для тих, хто є розробником і хоче зануритися у найабстрактнішу з математичних теорій, є книга під назвою «Теорія категорій для програмістів» і курс лекцій від того ж автора.

А навіть якщо розробка власного компілятора вас не цікавить, можливо, тема DSL — мов, специфічних до домену — є ближчою. Ми натрапляємо на них частіше, ніж може здатися: регулярні вирази, LINQ, форматовані рядки, засоби задання розмітки, як-от VFL від Apple тощо.

Доменно-залежні математичні галузі

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

Яким ще може бути програмування

Маєте бажання навчитись програмувати на квантовому комп’ютері, але все ще не маєте свого? IBM Quantum Experience — ресурс, який не тільки пояснює, як працює квантовий комп’ютер від IBM, не тільки дає необхідний теоретичний мінімум, а й дає можливість спробувати свої сили або з симулятором, або ж геть зі справжнім дивом техніки! Щоправда, на кожному кроці нас попереджають, що через необхідність підтримувати наднизьку температуру для збереження властивостей суперпровідника нам не можуть гарантувати правильність результатів.

Щодо необхідної в цьому напрямі математики, IBM стверджує, що для роботи з квантовими бітами достатньо розуміння лінійної алгебри, адже їхні значення в суперпозиції описуються лінійною комбінацією 0 та 1, а операції над к’юбітами знову зводяться до перемноження векторів та матриць. Навіть дають посилання на курс
лінійної алгебри
, якого має вистачити для початку.

Далі залишатиметься тільки розібратися з квантовою фізикою.

Обговорення домену застосування квантових комп’ютерів можна послухати у доволі свіженькому випуску подкасту Mindscape. Якщо стисло: квантові комп’ютери сьогодні надзвичайно добре підходять для моделювання квантових процесів. Однак про квантові комп’ютери загального призначення наразі мова все ще не йде.

А якою ще буває математика

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

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

Numberphile

Популярне джерело різних історій з буденності пересічних математиків. Типове відео від Numberphile складається з того, щоб взяти нічим, здавалось би, непримітне число і розповісти про нього те, що зазвичай мало хто очікує.

Для прикладу наведу відео про число −1/12.

3Blue1Brown

Математика часто вимагає добряче напружити увагу. Неперевершені анімації, створені на базі manim, з цим допомагають. На щастя, існує цілий канал, який цьому присвячений. Пояснення на будь-який смак: лінійна алгебра, математичний аналіз і диференціальні рівняння, фрактали, комплексні числа і кватерніони, ряди Фур’є і Тейлора та багато іншого.

Banach-Tarski paradox від Vsauce

Канал не присвячений математиці, але це конкретне відео на цілком математичну тему є доволі популярним. Хочу прокоментувати, оскільки бачу, як після перегляду цього відео люди вкладають у парадокс Банаха-Тарського більше сенсу, ніж в ньому є. Як і у випадку з числовою множиною, для якої неможливо визначити «розмір», це доволі сенсаційне твердження є лише прикладом наслідків від аксіоми вибору і більше, ніж все інше, є контраргументом до її прийняття.

Incompleteness theorem від Veritasium

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


То ж які знання з математики точно потрібні сучасному розробнику? Впевнений, що будь-яка спроба однозначно відповісти на це питання отримає контрприклад успішної кар’єри, де ті чи інші розділи таки не були обов’язковими. Однак доти, доки технології спиратимуться на математичний фундамент, розуміння їх теоретичних засад даватиме очевидні переваги гнучкості у виборі домену, можливості швидше розбиратись у нових технологіях, розумінні меж їх можливостей. До речі, не факт, що технології завтрашнього дня вимагатимуть розуміння курсу прикладної математики дня вчорашнього.

А чи доводилось вам у ролі розробника згадувати уроки з математики? Діліться своїми прикладами у коментарях і дякую за увагу!

👍ПодобаєтьсяСподобалось39
До обраногоВ обраному37
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Наука, которая создает «неподъемные» задачи — это признак несовершенства ее методов и инструментов. Поэтому, математику заменят новые методы, которые будут лучше, быстрей и ближе к материи вещей. Та математика, которую мы знаем сегодня, уйдет в прошлое навсегда и безвозвратно, как представления средневековья о природе вещей. :)

p.s. каменный топор когда-то тоже был самым лучшим инструментом. ))

То есть, предлагаешь от современных, но сложных инструментов — вернутъся обратно к каменному топору?

Такое желание примитивизма («чтобы попроще») — характерно для миллениалов, выросших на фейсбуках и тик-токах...

відповідаю за iOS-розробку в tech/uklon

Після цього думаю вже не про математику, а про баги мобільної веб-версії Uklon, і кількість дозволів, які хоче додаток на Андроїд.

кількість дозволів, які хоче додаток на Андроїд
відповідаю за iOS-розробку

І про веб також.

Прекрасная статья. Треба більше такого контенту. :)

Я бы еще добавил:

— формальная логика
— абстрактная алгебра
— теория типов
— теория языков, автоматов и вычислений

Например, формальная логика имеет широчайшее применение:
— моделирование данных: построение схемы данных для БД (к примеру, с помощью Object-Role Modeling, но можно и без него, реляционную алгебру тоже надо знать, чтоб уметь пользоваться БД)
— верификация (пред-/пост-условия, инварианты, и т.п.) и тестирование программ (modified decision/condition coverage сразу приходит на ум)
— рефакторинг (определим как замену равных подвыражений, и все всё поняли :) )

Разбор текста встречается постоянно. Ну все же использовали регулярные выражения? Или там JSON парсили?

Интерпретация, компиляция, какие-то анализы тоже часто встречаются в виде DSL.

Да и вообще любое точное определение требует знания математики, без определений затрудняется коммуникация, причем как между инженерами, так и с заказчиками. А то получается вот «ну вот у нас тут такая проблема» и далее час/два «обговариваем проблему,» где можно буквально за 10-15 минут договориться. Многи люди сильно против математики, видать не понимают, что нам НУЖНЫ эдакие костыли для того, чтоб ясно и эффективно мыслить. В роли костылей выступает математика. :)

Теория множеств еще пригодится, так же как и численные методы.

Великий плюс до формальної логіки.

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

Цікаво, що формальну логіку викинули з совкових шкільних програм у 1930-ті, як «фундамент буржуазного світогляду» :)

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

Врачом может называть себя только тот, кто изобрел способ излечить неизлечимую доселе болезнь
Спортсменом себя может называть только тот, кто взял золотую медаль в олимпиаде
Пожарным себя может называть только тот, кто тушил пожар на термоядерном реакторе

...
Ну ты понел.

Может быть сложившиеся представления отображают не точную область определения, поэтому, с тем же числом Пи, проблемы до сих пор?

А котом кто себя может назвать? :-)))

Кто может себе вылизать яйца

моя собака так умеет

Необходимое, но недостаточное условие)

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

Человека можно назвать человеком если он создал новую философию. Остальные — просто биороботы живущие по примитивным мета шаблонам в органических блоках памяти.

привнес в Математику

Отут то ты менеджер по формулам и приехал, а зупинка за рогом

Подытоживая вопрос, сложившиеся представления, закрепленные временем, усиливают сопротивление переменам.

У меня вопрос к математикам — в чем причина бесконечности числа Пи? Это причина в фундаментальных правилах материи или выбранных представлениях о точках и геометрических образах, их составляющих?

Другими словами, Вы не знаете и не можете кратко и понятно пояснить?

На вики доказательство иррациональности. Из иррациональности очевидно следует бесконечность(конечные числа представимы в виде N/10^c где N,c-целые)

Рациональные числа представимы в виде N/M, а не N/10^c. Десятичная дробь для рациональных чисел может быть как конечной, так и бесконечной с периодом (для иррациональных — без периода).

Противоречия нет. Я сказал что из иррациональности следует бесконечность, и не говорил что обратное верно. Если число представимо в виде N/10^c то она представимо в виде N/M следовательно рационально

Определенно. Но человек который задает вопрос про иррациональные числа может не заметить отстутствие обратного утверждения и предположить что рациональное — это N/10^c, поэтому я добавил уточнение.

я конечно бесконечно далек от гениального Фейнмана, но у него есть очень хорошее видео об «объяснить простыми словами»

www.youtube.com/watch?v=MO0r930Sn_8

Посмотрел только что видео, странно что он так много говорил, мог бы просто сказать:
— Ваш опрос больше о том, знаю ли я что находится в поперечном сечении силовых линий магнитного поля? Я не знаю ответ на этот вопрос. На данное время считается, что это работа полей, все остальное пока не известно.

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

Воно скінчене. Не більше 4 і не менше 3. Його не можна точно записати за допомогою десяткового дробу, звідси нескінчена кількість знаків, якщо пробувати це зробити. Ви от його зараз абсолютно точно записали за допомогою двох літер «Пі», тому це, дещо, є через обрані методи запису. Насправді, таких чисел дуже багато. В деякому сенсі, їх «більше», ніж тих, які можна так записати. І таких і таких є нескінченість, але там можна так звані «потужності» тих нескінченостей рахувати і потужність множини чисел, що не можна дробом записати є більшою, ніж тих, які можна. Тому там нема нічого дивного в тому, що не можна Пі так записати. Це скоріше, щоб можна було записати точно дробом, то число має відповідати деяким властивостям, яким пі не відповідає.

Я понимаю, что данный ответ все пытаются показать с точки зрения сложившихся представлений о числах и чему учили в школе, ВУЗе. Мне интересно насколько это мешает в понимании материи. Ведь все направлено для изучения и познания материи, она основной «жюри» всех идей и теорий.

Математиків це не стримає, для них уява та фантазія дуже важливі, а для інших нічого кращого не придумано (у відповідних питаннях) і те що є працює достатньо гарно. І це вже шиза — це поле пахане перепахане. Поняття числа дуже еволюціонувало. Спочатку цілі, потім дріб, потім точка на розміченій прямій, а потім і з неї навіть вилізли. Десятковий дріб — є утилітарним записом для практичних задач із відомими обмеженнями. Ну не пишеться ним пі абсолютно точно, але він не для того треба.

А если я Вам скажу, что математики, своим участием в познании материи физиками, одели физикам темные очки, которые им стали закрывать реальность, поэтому математическая фантазия породила в воображении физиков мистические темные материи и другие чудеса перевоплощения материи?

Шиза та псевдонаука. Типова. З фізикою все просто — пропонуйте експеримент, який дасть не той результат, що теорія передбачає. Щоб чіпати те, де вкрай важко експеримент поставити — приєднуйтесь до школи, що росте від тих, хто давав реальні результати, що несли гроші в тому числі, а не тільки балачки філософські.

В основах материи больше философия, а физика это уже «мышцы» — развернутые правила взаимодействий,.породившие новые свойства. Математика очень не совершенна еще. Вы не будете ведь утверждать, что все в математике уже создано и нового не предусмотрено? :) Думаю будущие машины ИИ покажут это математикам. Математикам придется учиться у машин :)) Кстати, про шизу и псевдонауку это про что именно?

Матерія запросто може існувати без філософії. Далеко не на усю філософію і на те, що ви думаєте, що є філософією, можна натягнути практичні «м’язи». Те, що математика розвивається — не значить, що значно зміняться ті її базові речі, які у школі вчать. Твердження, що математика заважає фізиці — є шизою. Математика, загалом, є лише мовою. Мовою можна брехати і можна описувати неіснуючі речі. Мовою можна описати будь-що, вводячи нові поняття, якщо треба. Але не треба просто пхати будь-які слова до купи, звідси там є формалізм. Коли існуюча математика не підходить для опису явищ — фізики (і інши, в нас от теж є) розробляють собі іншу математику, вона їм лише інструмент, який виготовляється такий, який треба. В математиці є купа дуже різних розділів і навіть купа різних логік для опису різних явищ. Можете от ще «глибше» копнути — самі існуючи мови людства усім надягають шори. Але на практиці усе можна усіма мовами описати достатньо непогано, без тотальних переваг однієї мови над іншою (якщо можна нові поняття/слова вводити).
Мені таки здається, ви йдете шляхом lurkmore.to/Научное_фричество

Твердження, що математика заважає фізиці — є шизою

Формулы создают преграды в голове физика для дальнейшего размышления как бессмысленного «вычисления показали». Об этом было. Математика это придуманный человеком идеальный мир, которого не существует в реальности, поэтому ее идеал это упрощенная форма реальности, которая позиционировала себя как «царица наук».

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

А «Научное фричество» напоминает созданное представителями официальной науки «щит» чтобы защищать себя от носителей неугодных вопросов, на которые они(представители науки) не могут дать ответ достаточно понятный и однозначный, чтобы не возникало вопросов и сомнений об их(представителях официальной науки) профессионализме. Если человек не понимает почему «Глупых вопросов не бывает, бывает только глупые ответы», то такой человек мало что сможет пояснить.
Наука, которая перестает развиваться это отмирающая наука, и ее участники становятся «могильщиками» своей науки.
:) Удачи вам!

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

Математики идут по пути формальной логики

oh, really? www.metodolog.ru/00972/00972.html

Логицизм в широком смысле провалился очень давно.

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

«Математиками родятся, а не делаются, и, по-видимому, также родятся геометрами или родятся аналитиками»

Что-то я сомневаюсь в таком утверждении. Благоприятные условия в семье важный показатель восприятия формирующегося ребенка. Так же как и воспитание его. Многое определяется родителями. Погубить можно любого гения. И качество учителя тоже важно. Дурак-преподаватель мало чему научит и погубит любой талант.

Тут два вопроса в одном: почему существуют иррациональные числа вообще, и почему пи — иррациональное.
Ответ на первый: это свойства не материи, а определения понятия «число». Мы договорились что чисел бесконечно много (причем бесконечность несчетная) — и между любыми двумя числами находится все еще несчетная бесконечность чисел. Из этого уже понятно что есть бесконечно много чисел которые нельзя записать никаким конечным числом символов (если бы таких чисел было счетное количество, каждому можно было бы присвоить свой спец. символ, и множество было бы счетным).
Ответ на второй сложноват чтобы описать в комментарии. Очень грубо могу описать один из вариантов доказательства так: мы записываем приближение к пи в виде рационального числа N/M, и постепенно уточняем N и M чтобы прийти к точному значению — и оказывается, никогда не можем закончить, все время есть ошибка — стремящаяяся к нулю, но никак не достигающая его.

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

То есть, бесконечность, порожденная человеческим разумом

звучит так, будто это чем-то плохо

Георг Кантор, думаю, не согласился б

Помню как в школе, после первого решенного в столбик сложения или умножения(уже не помню), я испытал большую радость. Мне понравилась фраза на лекции по математике в ВУЗе «Сфера бесконечна, но не безгранична, она имеет конечную протяженность — объем». Это фраза была как яркий солнечный свет, по красоте содержания, запомнилась с первого раза и до сих пор. Мне сейчас 51 год. К тому, же на одном из практических заданий по математике, преподаватель дал группе задание на доске, я посмотрел на доску, сказал ответ. Преподаватель повернулся, посмотрел и сказал «Правильно.», пока все остальные решали в тетради. Как видите, негатива к математике у меня нет. Хотя она и не привлекала меня своими формулами. С годами размышляешь, сдавать экзамены уже не нужно, но вот общие вопросы фундаментальных краеугольных гвоздей преткновения интересуют. Поэтому и тут со своими вопросами.

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

да, это классный навык — передать мысль корректно, полно, коротко и иллюстративно.

да, это классный навык — передать мысль корректно, полно, коротко и иллюстративно.

навик класний, тільки от дана конкретна фраза — малозв’язний набір слів. якщо його видав дійсно «математик», то хіба що у повному маразмі.

А что в данной фразе преподавателя ВУЗа по математике Вас смущает?

коротка відповідь: все, до останнього слова.

а якщо довго розбиратися

«Сфера бесконечна, но не безгранична, она имеет конечную протяженность — объем»

по-перше, якщо говорити про 3-вимірний простір, то є сфера, а є куля (шар). у сфери об’єму нема, або можна приписати нульовий, об’єм є у кулі. по-друге, що значить «сфера нескінченна»? хто так взагалі говорить? має нескінченну/незліченну кількість точок — ок. множина точок сфери має нескінченну/незліченну потужність — ще краще. чомусь же ніхто не називає відрізок довжиною 1 см нескінченним. по-третє, що значить «не безгранична»? має границю? містить свою границю? і при чім це тут взагалі? відкрита куля (x^2+y^2+z^2 < 1) свою границю не містить, а закрита (x^2+y^2+z^2 <= 1) містить. різниця між ними аж «менше» проти «менше рівно». по-четверте, що за «скінченна протяжність» і чого це вона «об’єм»?

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

Это было именно как вспышка в сознании от услышанного..

Слід було б зформулювати питання коректніше:
— В чому причина безконечності десяткового дробу, що представляє число «пі»?

Думаю, очевидно, що десяткова основа числення — це наслідок наявності десяти пальців на двох руках в переважної більшості піпла.
Думаю, очевидно, що цілочисельна основа системи числення — просто частковий випадок усіх можливих систем числення.
Думаю, очевидно, що існує безліч інших систем числення з різними основами (включаючи дробні, іраціональні та трансцендентальні основи), де число «пі» може бути представлене цілим числом або раціональним дробом.

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

Обучаю программистов 30 лет ) Среди моих подопечных есть как владельцы компаний, топ — разработчики так и продавцы электроники. Многие нашли себя и есть, чем гордиться и радоваться за них. За эти десятилетия развития ІТ мною был замечен один интересный факт, ведь карьеру своих учеников мне удалось наблюдать фактически со старта. Так вот, если студент подходил к написанию программного кода как к решению математической задачи, то его доход как правило в разы больше, чем того кто делал это будто писал сочинение. Понятно, что никто из них не доказывал теорему Ферма и может саму математику не использовал. Но большой успех пришёл почему то к тем, у кого было мощное математическое мышление, полученное на занятиях по математике в том числе.

так полагаю, что тут перепутаны причина и следствие. кто умнее — тот сумел в математику, ну и наоборот.

Обучаю программистов 30 лет ) Среди моих подопечных есть как владельцы компаний, топ — разработчики так и продавцы электроники. Многие нашли себя и есть, чем гордиться и радоваться за них. За эти десятилетия развития ІТ мною был замечен один интересный факт, ведь карьеру своих учеников мне удалось наблюдать фактически со старта. Так вот, если студент подходил к написанию программного кода как к решению математической задачи, то его доход как правило в разы больше, чем того кто делал это будто писал сочинение. Понятно, что никто из них не доказывал теорему Ферма и может саму математику не использовал. Но большой успех пришёл почему то к тем, у кого было мощное математическое мышление, полученное на занятиях по математике в том числе.

Наш світ доволі одноманітний. В різних дисциплінах та галузях виникають задачі, що мають математично тотожні розв’язки. І знаючи розв’язок однієї задачі, та помітивши тотожність двох задач, можна одразу отримати розв’язок іншої. Так, наприклад, задачі теплопереносу можна розв’язувати методом контурних токів з ТОЕ. А для задачі порівняння лексем можна використовувати теорему Лопіталя. Я вже не кажу, скільки геморою економить тривіальна теорема Больцано-Коші. Натикаючися на задачу, яка гомеоморфна до абстрактної математичної задачі, я позбавляюся щастя будування велосипедів та костилів.

А ще математика формує поняття задач, що не мають розв’язку. І для певних класів задач має чіткі критерії, за якими можна одразу сказати: тю, так це ж P/NP, розходимось. Або: тю, так тут x^(y^z). Або: тю, так це ж задача трьох тіл.

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

А як же реляційну алгебру забули? Реляційними базами навіть джуніори користуються.

Гєографія нужна только ізвозчікам! © Д.І.Фонвізін

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

Зачем реально нужна математика программистам: www.youtube.com/watch?v=p8u_k2LIZyo

А если серьезно, вот вам интересный факт: хоть большинству здесь этот ваш математика на#@! не нужон, но если математики-в-программировании резко исчезнут из материального мира вопреки закону сохранения энергии, здравому смыслу и рыночной экономике, то быстренько станут не нужны и формошлепы, и всё остальное вайти, просто в силу того, что без математики скоропостижно скончаются все нам известные компьютерные технологии.

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

Слишком сложная и перенасыщенная рекоммендациями и ресурсами статья.
80-95% программистов реально без математики могут обойтись, для начала достаточно писать тупой шаблонный код, для чего достаточно выучить пару десятков операторов и пару библиотек, а оснтальное по мере надобности уже сами по хелпам доучивают.

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

Все вышеперечисленные курсы — это уже для более интеллектуальной работы связанной с аналитикой, или вообще научными исследованиями R&D, которой почти никто из программистов не занимается, но самое главное все равно этому датасайнсу у нас особо никто и не обучит, так в основном наблатыкиваются на готовых фреймворках какие то нейросети строить, зачастую не понимая что внутри.

80-95% программистов реально без математики могут обойтись

Ага, и херачить ифы типо if (a&&b)||(a&&c)||(a&&d)

on the other side, обожаю, как некоторые сначала объединяют в один несколько разных if, а потом минифицируют в совершенно нечитаемую кашу из &&, || и !

Зато без повторений, ага

Бывает и такое, тогда лучше разбить на переменные isЧетоТам и их уже в if.

То все просто іграшки проти виразів у тризначній логіці.

Так это же дизъюнктивная нормальная форма

Статистика — да, все остальное такое, для нужд программиста гуглится за 3 минуты.

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

Як завжди ... всі, хто щось знають, кажуть що математика потрібна ... всі, хто неосилив, кажуть, що щасливі без неї. І примирити ці дві точки зору не зможе ніхто ))

Як завжди ... всі, хто щось знають, кажуть що математика потрібна ... всі, хто неосилив, кажуть, що щасливі без неї

Думаете Вы ее осилили? )) Великую теорему Ферма можете доказать? ))

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

Якщо на них подивитися, можна взагалі прийти до висновку, що більша частина математики — то псевдонаука. А якщо так — то який сенс її взагалі вивчати? )

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

А ви дійсно розумієте, як саме все відносно, чи просто повторюєте поширений мемасик?

Вы можете доказать обратное?

Я ток про аксиому Эскобра знаю :-)))

Знатоки математики, вас все устраивает в математике?
Вопрос не про тест чувства благодарности к своей «кормящей Альма-матер», а про объективность, и как уровень понимания математики. Ведь 100% никогда ни в чем не бывает однобоко, как показывает кривая Гаусса.

Схоже, у вас якесь досить бінарне уявлення про математику: аля її можна знати повністю(включаючи доведення теореми Ферма) або не знати ніяк.

Боюсь вас розчарувати ... людей, що вивчили ВСЮ відому математику ... ну ... якщо вони взагалі існують то їх одиниці. Я особисто бачив дуже крутого матаніста (по світовим міркам), що трохи плавав в мат. статистиці. І це нормально.

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

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

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

Вопрос еще в том — большое объемное доказательство это признак несовершенных методов, аксиом, базисных элементов? Как мозаика из миллиона камней, из которых нужно сложить с бесконечно малыми интервалами в краях картину той же Мадонны, к примеру. Сложные те ошибки, которые находятся в статуса аксиом.

Дякую за посилання на стенфордський курс по перетворенням Фур’є, виглядає цікавим.

У нас с математикой 3 проблемы:
1. Преподаватели не хотят обучать учеников, занимаясь софистикой (в математическом контексте)
2. Преподаватели не умеют обучать учеников, так как не могут осознать их уровень непонимания со своей колокольни (осознание непонимания — путь к просвещению)
3. Преподаватели не могут обучить, так как сами ничего не знают и тупо читают по методичкам.

P.S. Притча о математике

Однажды какой-то зумер заказал свежий кофе.
Когда пришла пора делать рассчет — оказалось, что у баристы сели батарейки в калькуляторе.
Рядом сидел бомжеватого вида алкоголик и он сказал, сколько нужно уплатить и сколько сдачи дать зумеру.
— Как ты это узнал? — спросил удивленный бариста
— Всю жизнь я учил математику, подвергая себя изучению формул! — гордо ответил преподаватель математики
— Ух ты! — сказал бариста, и поменял батарейки в калькуляторе — Но ведь вся твоя жизнь ушла на то, чтоб сэкономить пару батареек?
— Совсем нет! — гордо возразил преподаватель математики — Я обучил этому искусству множество своих учеников и теперь они тоже могут считать без калькулятора!
И точас был подвергнут остракизму зумером, который работал продавцом батареек.

я би виділив зовсім інші проблеми:
* нема адаптації математичних курсів під спеціальність: береться програма для мехмату і в залежності скільки є часу на вичитування з неї викидається відповідного розміру шматок того що «складніше». після такого 99% вивченого використовується рівно 1 раз в житті — на екзамені. за те все життя то тут то там знаходяться шматки матапарату, які добре би знати, але про них і слова не сказали. в принципі, відноситься до всіх курсів. наприклад, фізику біологам читають так само — викидають «складне» з курсу фізфаку навіть не задумуючись що з залишеного реально треба, а що ні.
* недостатньо часу на вивчення. проблема комплексна: я не пригадую такого семестру, щоб не треба було здавати 10-12 предметів, а це в середньому по 2-3 тижні на предмет. при чому не раз звертав увагу: в блогах про навчання закордоном дуже часто пишуть, що кількість предметів значно менша ніж у нас і в кожен з них треба таки вгризтися, а не просто визубрити набір слів на екзамен.
* нема реального вибору викладачів і предметів, що не дає можливості студентам вибирати кращих.
* ідіотські обмеження типу залежності кількості викладацького складу від кількості студентів — не дає можливості «пнути під зад» всіх хто зовсім забив і вчити тільки тих, хто реально хоче отримати знання.

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

Так же немного более специализированные:

Айгенкрис: youtube.com/user/eigenchris

Светлая сторона Математики: youtube.com/c/brightsideofmaths

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

Доведення вивчають з двохи причин:
1. Ключові доведення показують нові способи «якими можна думати»
2. Для того, щоб математика не перетворилась в релігію, а підручник — в біблію. Якщо ви не вірите в будь-яку теорему, завжди можна почитати її доведення і або знайти помилку, або переконатися у вірності.

ПС. Відчуваю себе людиною, що ведеться на хитрого троля. Ви дійсно вірите в тези, що пишите, чи це вкиди для розігріву дискусії?

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

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

«Для прикладу наведу відео про число —1/12.»

А как же логика здравого смысла — Сумма положительных чисел разве может образовать отрицательное число? Математикам, как никому другому, нужен контроль на здравый смысл результатов.

Ну, «логіка здорового глузду» свого часу взагалі заперечувала від’ємні числа, ірраціональні числа, комплексні числа. Важко було людям погодитися з існуванням того, в чому не можна порахувати, умовно кажучи, кількість яблук в ящику. А потім нічого, виявилось корисним інструментом і всі звикли.

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

Поясните в два-три речення як зі «здоровим глуздом», наприклад, співвідноситься тотожність Ейлера? Дивіться, якась там основа натурального логарифма (!) в степені (!!) уявної одиниці (!!!) помноженої на відношення довжини кола круга до його діаметра (що, блін ?!!!) дорівнює мінус одиниці? Де тут здоровий глузд?

Де тут здоровий глузд?

нормальная такая формула ты с не привычки просто )) представь себе на пример что электрон не имеет материального представления )) а на нём всё электричество основано или представь себе магнетизм на котором одна половина электрической промышленности основана и полупроводниковый фото эффект на котором современная половина вторая

как на счёт самих полу проводников на которых вся электронная промышленность включая цифровую и прочия интернет ))

Если бы Вы больше размышляли, то поняли бы, что материальное не может образовать нематериальное. Так же как и нематериальное создать материальное.

что материальное не может образовать нематериальное

к сожалению любое наблюдение есть материальное взаимодействие и возможно это материальное и существует в наблюдаемой форме только в момент когда за ним наблюдают

Так же как и нематериальное создать материальное

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

Поясните в два-три речення як зі «здоровим глуздом», наприклад, співвідноситься тотожність Ейлера? Дивіться, якась там основа натурального логарифма (!) в степені (!!) уявної одиниці (!!!) помноженої на відношення довжини кола круга до його діаметра (що, блін ?!!!) дорівнює мінус одиниці? Де тут здоровий глузд?

Если функцию f(x) = e^x (e в степени x) аппроксимировать многочленом при помощи ряда Тейлора, потом сгруппировать (переставить) слагаемые, а в качестве аргументов использовать комплексные числа (x становится i*y, где i — мнимая единица), то получается довольно интересное равенство e ^ (i*y) = cos y + i * sin y (e в степени мнимой единицы, умноженной на аргумент функции, равно косинус аргумента плюс мнимая единица, умноженная на синус аргумента). Теперь уже просто вместо аргумента использовать pi (то, которое 3.1415...), то и получается тождество Эйлера.

Вы меня понимаете, мистер Андерсон? ©

Так что, если ограничиться миром действительных чисел, то тождество Эйлера — это не про логику (Это НЕ про операции, это про функции. Это НЕ возведение в степень. Просто определена некая функция, через которую ВЫРАЖАЕТСЯ возведение в степень). Тождество Эйлера — это про красоту математических преобразований.

Все так. Але і приклад з «-1/12» теж про красу перетворень. А виявляється людям потрібна ще й очевидність.

@bq:14:54:58:/tmp/dl$ cat a.c
#include <stdio.h>
#include <stdint.h>

void main()
{
    int16_t a = 30000;
    int16_t c = a + a;
    printf("%d\n", c);
}
@bq:14:54:59:/tmp/dl$ gcc a.c -o a && ./a
-5536
Может показаться, что математика к этой чисто компьютерной шизофрении ни при чём — но теория полей очень даже при чём.

ИМХО но ценность математики в стопке исписанных тетрадей за более чем десяток лет обучения. Вот я кроме школьной алгебры и базу геометрии сходу только что то про графы и булевую вспомню. Помню на защите диплома(делал игру для телефона с физикой(на libGDX)) меня ввели в ступор спросив за определение геометрического вектора.
Куча практики даст ценный навык быстро находить закономерности и возможность подобрать формулу или данные для них. Математика как просто множество тем в памяти забудется через пару лет. Но именно навык даст возможность вникнуть в любую тему за пару дней.

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

токо у меня подгорает, когда в одном предложении смешивают FT и FFT?

а чому? це хіба настільки різні речі?

FT — разложение по любой полной системе ортогональных функций. например, по полиномам Чебышева. FFT — ускоренная кастомная реализация частного случая тригонометрического базиса, валидная при выполнении ряда допусловий. удивительное рядом ;)

У вас якесь дуже заплутане і не зовсім коректне визначення складності алгоритму.

(потім я глянув ваш профіль і зрозумів, що у вас з алгоритмами і так все ок. Ну але видаляти коменти неможливо, тому тепер живіть з цим😀)

Хорошая статья, спасибо!
Математика — моя большая любовь ever.

Странно!? В этом топике написано , что она как бы вообще ненужна...https://dou.ua/forums/topic/34458/?from=forcol

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

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

Тут НЕ пише, що вона взагалі НЕ потрібна.
Тут пише, що її знати треба, але НЕ на рівні професора, можна і простіше.

Урок 4. Знать досконально высшую математику Java-инженеру не нужно. Привожу дословно, на русском потому пишу, т.к. я с Одессы...

А, так ти тільки читаєш те, що виділено жирним шрифтом?
Зрозуміло, питань нема.

Возможно, вы перестанете пилить формочки :)

Ну кривые понадобятся любому кто работает с фронтом, мобайлом и прочим где надо кастомный UI рано или поздно. Но там разбираться минут 20. Главное просто помнить что они есть)
А блокчейн сильно привязан к доменной зоне.

Мені дуже шкода, що у вас склалось таке враження. «Ми хочемо гарні, інтуїтивно зрозумілі інтерфейси» (включаючи web-інтерфейси). Але і закінчити на тому, що математика нікому з розробників не потрібна — теж, погодьтесь було б неправильно. Я, до речі, теж якоюсь мірою — фронтендер 😉

Також, ніщо з того, що описано, не допоможе краще смажити котлети чи крутити гайки.

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

Ну в андроиде я точно делал кривые прогресс бары через преобразования, высчитывал точки в коде рендера прогресс бара.

Сделать эквалайзер для звуковой дорожки, например

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

Можно будет пилить анимированные формочки на реакте, например.

Так может их мало не потому, что их не хотят, а потому что их не умеют делать?
Хотя ведь это такие же доменные знания, как и работа с коллекциями, например. Не надо знать теорию графов для того, чтобы пользоваться двухсвязным списком. Но знать что такое граф в целом стоит. В случае с математикой для UI, по сути, надо уметь работать с координатами, выражать визуальные объекты в векторах/матрицах и уметь манипулировать ими.

Рекомендую посмотреть видосики типа этого, у автора на канале много чего интересного: www.youtube.com/watch?v=ivg603bYDk8

Там как бы математика есть, но школьного/университетского курса хватает чтобы понимать что происходит. Чтобы делать самому, да, надо будет углубиться несколько детальнее, но до доказывания теорем, да и даже ручного умножения матриц, скорее всего не дойдет, Math пакет все сделает за вас. А вот понимание что даст умножения такой-то матрицы на такой-то вектор и когда и для чего это можно использовать — это как раз те знания математики, которые нужны погромисту.

Підписатись на коментарі