Я начала разработку интерактивного интерфейса для своего проекта «Florist». Центральным элементом сайта должен был стать интерактивный макет — с его помощью пользователь мог бы визуализировать различные цветочные дизайны, располагая в ячейках макета цветы из каталога. Я создала прототип, внедрила его в сайт и доработала окончательный дизайн до такой картинки:
Рубрика «математика для программистов»
Создание интерактивного макета. Задача упаковки кругов в круг. Метод отжига
2025-09-10 в 22:12, admin, рубрики: векторная графика, векторные операции, дизайн интерфейсов, математика для программистов, метод отжига, оптимальное решение, симуляция физики, упаковка кругов, физика частиц, фронтендКак улучшить оценку МНК в гуманитарных науках
2025-09-08 в 13:46, admin, рубрики: математика, математика для программистов, математика и реальная жизнь, математика и физика, математика на пальцах, математическая статистика, математический анализ, математическое моделирование, эконометрика, экономикаЗамечательный метод МНК появился в недрах астрономии (точной науки), здесь мы покажем как можно существенно улучшить его оценки в гуманитарных (неточных) науках.
Сперва приведем реальный пример, демонстрацию способа уточнения МНК. Летом 2024 года я вычислил курс доллара в Казахстане на полгода вперед. И написал об этом статью здесь же - https://habr.com/ru/articles/823852/ (все даты реальные, я не хакер, Хабр взломать не смогу:)).
Этот прогноз сбылся, вот график курса тенге за второе полугодие 2024 года:
Дорожная карта теории вероятностей для собеседований, ШАД и олимпиад
2024-11-01 в 11:14, admin, рубрики: математика, математика взрослому, математика для программистов, математика и реальная жизнь, теория вероятностейТеорию вероятностей спрашивают и на собеседованиях, и на экзаменах, также она является фундаментом для многих методов машинного обучения. По моим наблюдениям студентам явно не хватает того курса теор вера, который есть в ВУЗах, чтобы научиться решать основные задачи — необходимы дополнительные материалы. В этой статье хотел бы поделиться моими самыми любимыми материалами и источниками для освоения теории вероятностей, имея за плечами крепкую школьную базу и скромные навыки в математическом анализе и линейной алгебре.
Первые шаги
Краткое пособие по переводу между системами счисления с основаниями 2, 8, 10, 16
2024-10-23 в 6:58, admin, рубрики: NS, математика для программистов, системы счисленияТермины
-
NS (СС) — Numeral System (Система Счисления)
Перевод из десятичной NS в двоичную
Существует два способа перевести из десятичной NS в двоичную. Далее будут разобраны оба алгоритма.
Алгоритм №1
Мы можем перевести число из десятичной NS в двоичную, следуя следующему алгоритму:
Для этого необходимо выполнить следующие действия:
-
Делим Читать полностью »
Типы в программировании как математические множества
2024-10-03 в 12:15, admin, рубрики: C#, математика для программистов, множества, полиморфизм, теория типов, типыТипы в программировании можно(и нужно) рассматривать как математические множества.
Мысль хоть и очевидная, но из моей головы давно выветрилась.
Именно поэтому я и решил написать эту статью: чтобы напомнить о ней самому себе и тем, кто о ней тоже забыл или даже не знал.
Сначала вспомним главное определение:
Множество — это коллекция элементов, обладающих общим свойством, которые рассматриваются как единое целое. Элементы множества могут быть любыми: числами, объектами, символами и т.д.
1. Множество целых чисел: {1, 2, 3, 4}
2. Множество гласных букв русского алфавита: {А, Е, И, О, У, Ы, Э, Ю, Я}
Математическое решение задачи о матрице «змейкой»
2022-06-18 в 21:14, admin, рубрики: c++, Алгоритмы, Занимательные задачки, Лайфхаки для гиков, математика, математика для программистов, Программирование, условия, циклыНастоящая статья продолжает тему предыдущей работы (https://habr.com/ru/post/560266/Читать полностью »
Методы наименьших квадратов без слёз и боли
2018-11-18 в 16:46, admin, рубрики: c++, Алгоритмы, геометрия для пятого класса, математика, математика для программистов, математика на пальцах, мнк, наименьшие квадраты, Программирование, разработка игр, уравнение лапласаИтак, очередная статья из цикла «математика на пальцах». Сегодня мы продолжим разговор о методах наименьших квадратов, но на сей раз с точки зрения программиста. Это очередная статья в серии, но она стоит особняком, так как вообще не требует никаких знаний математики. Статья задумывалась как введение в теорию, поэтому из базовых навыков она требует умения включить компьютер и написать пять строк кода. Разумеется, на этой статье я не остановлюсь, и в ближайшее же время опубликую продолжение. Если сумею найти достаточно времени, то напишу книгу из этого материала. Целевая публика — программисты, так что хабр подходящее место для обкатки. Я в целом не люблю писать формулы, и я очень люблю учиться на примерах, мне кажется, что это очень важно — не просто смотреть на закорючки на школьной доске, но всё пробовать на зуб.
Итак, начнём. Давайте представим, что у меня есть триангулированная поверхность со сканом моего лица (на картинке слева). Что мне нужно сделать, чтобы усилить характерные черты, превратив эту поверхность в гротескную маску?

В данном конкретном случае я решаю эллиптическое дифференциальное уравнение, носящее имя Симеона Деми Пуассона. Товарищи программисты, давайте сыграем в игру: прикиньте, сколько строк в C++ коде, его решающем? Сторонние библиотеки вызывать нельзя, у нас в распоряжении только голый компилятор. Ответ под катом.
В трёх статьях о наименьших квадратах: ликбез по теории вероятностей
2018-11-12 в 17:15, admin, рубрики: c++, Алгоритмы, геометрия для пятого класса, математика, математика для программистов, математика на пальцах, математическое моделирование, мнк, наименьшие квадраты, ПрограммированиеПолтора года назад я опубликовал статью «Математика на пальцах: методы наименьших квадратов», которая получила весьма приличный отклик, который, в том числе, заключался в том, что я предложил нарисовать сову. Ну, раз сова, значит, нужно объяснять ещё раз. Через неделю ровно на эту тему я начну читать несколько лекций студентам-геологам; пользуюсь случаем, излагаю тут (адаптированные) основные тезисы в качестве черновика. Моей основной целью не является дать готовый рецепт из книги о вкусной и здоровой пищи, но рассказать, почему он таков и что ещё находится в соответствующем разделе, ведь связи между разными разделами математики — это самое интересное!
На данный момент я предполагаю разбить текст на три статьи:
- 1. Ликбез по теории вероятностей и как она связана с методами наименьших квадратов
- 2. Наименьшие квадраты, простейший случай, и как их программировать
- 3. Нелинейные задачи
Я зайду к наименьшим квадратам чуть сбоку, через принцип максимума правдоподобности, а он требует минимального ориентирования в теории вероятностей. Данный текст рассчитан на третий курс нашего факультета геологии, что означает, (с точки зрения задействованного матаппарата!) что заинтересованный старшеклассник при соответствующем усердии должен суметь в нём разобраться.
Насколько обоснован теорвер или верите ли вы в теорию эволюции?
Однажды мне задали вопрос, верю ли я в теорию эволюции. Прямо сейчас сделайте паузу, подумайте, как вы на него ответите.
Взломать шифр Хилла? Легко
2017-12-29 в 15:27, admin, рубрики: криптография, математика, математика для программистов, шифрыЦель: взломать шифр Хилла
Доброго времени суток, уважаемые читатели! Сегодня я хотел поделиться способом, который помог мне вскрыть текст, зашифрованный методом Хилла. Что такое метод Хилла описывать не буду: до меня уже постарались опытные умельцы донести особенности данного способа. Ссылка на пост.
Что имеем?
Скажу сразу, что на руках не имелось ни открытого текста, ни ключа. Было известно, что текст длинной 6286 символов был зашифрован матрицей 7 х 7. Поэтому для нашего же удобства, мы разобьем текст на 898 строчек по 7 символов. В тексте не содержатся буквы 'ё' и 'ъ'. В целях благоразумства, я не буду приводить весь зашифрованный текст, а лишь его часть:
тчгяцмекещэнлжсвтйджтчгсмнежздыщзяотьдрпюмимаадрх...
На вид бессмысленная ерунда, пока что…
Как будем ломать?
Рассмотрим атаку «грубой силой». Выше было оговорено, что из алфавита исключены две буквы, поэтому все линейные комбинации при шифровании (как и при дешифровке) берутся по mod 31 (учитывая, что это простое число, текст становится чуть более безопасным).
Если рассматривать перебор обратных матриц-ключей, то всего нам придется перебрать $inline$31^{49} $inline$ комбинаций (это число примерно умещается в 75 знаков). Поэтому такой способ исключается моментально, хотя! Если из этого множества можно было бы каким-нибудь более-менее быстрым способом перебрать подмножество невырожденных матриц, то возможно задача облегчилась бы. К сожалению я такого способа не знаю и не уверен, что такой вообще существует!
Читать полностью »
Насколько важна математическая подготовка в перспективных направлениях разработки ПО
2016-11-05 в 15:46, admin, рубрики: data mining, искусственный интеллект, математика, математика для программистов, прикладная математика, Программирование, метки: математика для программистов
Профессия программиста становится все более массовой и востребованной. Сейчас порог вхождения в ИТ-сферу в принципе снизился, но продолжает расти интерес к ИТ-технологиям в целом, и к программированию в частности.
Среди ИТ-компаний и программистов, тем не менее, растет конкуренция. Однако стоит отметить, что, по крайней мере, на рынке труда она достаточно честная. Например, принимая на работу программиста работодатель в первую очередь будет оценивать уровень реальных знаний и навыков, а не цвет диплома. Впрочем, эта ситуация способствует распространению «программистов-самоучек», которые ограничены узкой специализацией. Для них нередко оказывается справедливо выражение «шаг вправо, шаг влево – расстрел». Так что, сейчас недостаточно сказать: этот человек – «ИТшник», или даже программист. Программист программисту рознь.
Специализации программистов множатся и развиваются, программист, специализирующийся в одной области приложений, не всегда может понять своего коллегу, работающего в другой области. Хотя вроде бы и языки программирования, и технологии одни и те же. Области приложений могут кардинально отличаться друг от друга, и для того, чтобы писать специализированные программы, мало знать языки и технологии программирования, нужно хорошо разбираться в той области, для которой разрабатывается программный продукт. В последнее время все чаще при изучении предметной области возникает необходимость в математической формализации. Читать полностью »

