Data Science: Алгоритмы и Структуры данных
Открыть в Telegram
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество: @oleginc Канал на бирже: https://telega.in/c/structuredata
Больше7 577
Подписчики
-424 часа
-187 дней
-6330 дней
Архив постов
Инженерный калькулятор на C++. Часть 1: Токенизатор математических выражений
В этой части мы рассмотрим создание простейшего парсера (токенизатора) на базе конечного автомата, который будет разделять исходное выражение на части: числовые литералы, операторы, функции и т.п.
Зачем это нужно? Обработка математического выражения в том виде, в котором оно есть, весьма неудобно - ведь операторы имеют приоритет, скобки этот приоритет меняют, а есть еще и функции, а унарное отрицание - так вообще ужас... Получается неудобно. Чтобы эту проблему решить, были придуманы Обратная польская запись (RPN) и Алгоритм сортировочной станции, позволяющий обычную запись выражения (ее также называют инфиксной) преобразовать в RPN (она является постфиксной). О них речь пойдет в следующей части.
https://habr.com/ru/articles/769812/
Алгоритмы и Структуры данных
Как Windows 11 уменьшила размер кумулятивных обновлений на 40%
Раз в месяц Microsoft выпускает кумулятивное обновление Windows, которое включают в себя все предыдущие. То есть для приведения системы в актуальное состояние требуется установка единственного апдейта.
Учитывая огромное количество исправлений в Windows, кумулятивное обновление без оптимизации может сильно вырасти в размере, что неприемлемо. Например, его не смогут скачать пользователи с медленным подключением к интернету, а только в США таких 20%. Поэтому уменьшение размера обновлений — приоритетная задача. Теперь для неё нашлось решение.
https://habr.com/ru/companies/globalsign/articles/587714/
Алгоритмы и Структуры данных
Шифры замены и табличного гаммирования
В данной работе рассматриваются шифры замены и табличного гаммирования. Читателю предлагается поучаствовать в процессе решения несколько задач из области защиты информации.
https://habr.com/ru/articles/583616/
Алгоритмы и Структуры данных
Как посчитать синус быстрее всех
Несмотря на свою кажущуюся банальность, темы о вычислении синуса достаточно регулярно появляются на хабре. И каждый раз их авторы или делают сомнительные утверждения, или получают сомнительные результаты. Не в силах более терпеть, я тоже решил поучаствовать и внести свой, не менее сомнительный вклад в этот вопрос.
https://habr.com/ru/companies/ruvds/articles/584460/
Алгоритмы и Структуры данных
Как работает распознавание лиц? Разбор
Среднестатистический человек может идентифицировать знакомое лицо в толпе с точностью 97,53%. Вы скажете, это немало и будете правы. Но это ничто по сравнению с современными алгоритмами, которые добились точности 99,8% еще в 2014 году. А в последние несколько лет они достигли практически совершенства! Современный алгоритм, использующийся в камерах видеонаблюдения в Москве способен обрабатывать 1 миллиард изображений менее чем за полсекунды с точностью близкой к 100%.
https://habr.com/ru/companies/droider/articles/568764/
Алгоритмы и Структуры данных
Показатели работы биометрических алгоритмов
Допустим новый пользователь хочет зарегистрироваться в системе. Сначала он на личном (мобильный телефон, планшет) или на стационарном (биометрический киоск) устройстве вводит предварительные данные: возможно ФИО, выдуманное имя-nickname (может, например, использоваться в программах лояльности), номер телефона, и т.д. Затем происходит формирование биометрического образца, в случае с использованием лицевой биометрии – по фотографии, по кадру съемки.
https://habr.com/ru/companies/nspk/articles/582810/
Алгоритмы и Структуры данных
Эффективное геометрическое хеширование пространства признаков для быстрого точного поиска наиболее близких дескрипторов
При решении задачи распознавания лиц в компании Оксаджайл (Oxagile) был разработан новый алгоритм эффективного геометрического хеширования пространства лицевых признаков с целью быстрого поиска двух наиболее близких по косинусному расстоянию лицевых дескрипторов. Разработанный алгоритм обладает той же точностью, что и метод простого перебора и, в то же время, он приблизительно в сто раз быстрее. С более подробным описанием алгоритма можно познакомиться в англоязычном оригинале настоящей статьи.
https://habr.com/ru/articles/582708/
Алгоритмы и Структуры данных
Какова вероятность найти слово fuck в случайной последовательности из 20 букв?
Однажды на работе возник вопрос — насколько вероятно, что в случайно сгенерированном идентификаторе (отдаваемом пользователю, к примеру) вдруг обнаружится плохое слово. Приблизительная оценка была дана достаточно быстро, а вот точное решение — уже не так тривиально.
Я решил всерьёз выяснить, чему равна эта вероятность в зависимости от длины случайной строки? Можно ли получить явную математическую формулу для ответа? Что, если взять другое слово? Что, если взять другой алфавит?
Обо всём по порядку.
https://habr.com/ru/articles/510554/
Алгоритмы и Структуры данных
Четыре способа оптимизации ПО
Преждевременная оптимизация может оказаться корнем всех зол, а запоздалая — корнем безысходности. Каким бы быстрым ни становилось аппаратное обеспечение, мы находим способы писать медленные программы. И зачастую проявляется это не сразу. Пользователи могут годами не обращать внимания на проблему в производительности ПО, пока она не становится очевидной, что порой происходит в течение одного дня.
https://habr.com/ru/companies/ruvds/articles/775868/
Алгоритмы и Структуры данных
Рейкастинг в игровых 2D-движках
На мой взгляд, рейкастинг — великолепная концепция, понять которую не так сложно, но качественных ресурсов по ней очень мало. Я расскажу о математике, лежащей в её основе, чтобы вы при желании с лёгкостью могли реализовать её в своих будущих проектах. Постараюсь сделать объяснение как можно более понятным, рассказать о всех тонкостях и проблемах, с которыми вы можете столкнуться. Также мы поговорим об оптимизации и о том, как сильно вам могут помочь пространственные хэш-карты. Ещё я напишу простые интерактивные примеры, с которыми вы сможете поэкспериментировать. Учтите, что демо написаны максимально простым образом, не ожидайте увидеть в них код уровня энтерпрайза — мы изучаем саму концепцию, а не реализацию.
https://habr.com/ru/articles/578110/
Алгоритмы и Структуры данных
Моя любимая задача для собеседований по программированию
В сети есть уйма постов и видео, где разбираются ответы на вопросы LeetCode. Но обычно рассмотрение в них происходит с позиции соискателя, а не работодателя. В этой же статье я приведу разбор собственной задачи по программированию, которую использовал при приёме людей на работу в Amazon, Google и Microsoft.
https://habr.com/ru/companies/ruvds/articles/775570/
Алгоритмы и Структуры данных
Очень сложные Крестики-Нолики
Доброго времени суток, когда вы в последний раз играли в крестики-нолики? Вопрос действительно важный, не удивляйтесь, всё окажется гораздо хитрее чем вы думали. Полагаю что давно, хорошо, вспомните поле которое вы рисовали на бумаге: 3x3? 5x5? А что вы скажете насчёт 19x19? "Долго будем играть!" - и это только часть проблемы. Если вы крайне дотошный игрок в крестики-нолики и не можете позволить себе проиграть младшему брату в такую игру, то вы конечно попытаетесь анализировать положение поля, пред рассчитать шаги брата и выбрать наилучший. Ход мыслей отличный, однако это вполне несложно на маленьких полях, а вот 19 на 19... Именно такая задача встала передо мной в ходе хакатона от компании Тинькофф - написать бота для игры в крестики-нолики на доске 19x19 с поиском самого лучшего хода за небольшое время (на вход поступает состояние всей доски на данный момент - на выход также вся доска с новой фигурой).
https://habr.com/ru/articles/776270/
Алгоритмы и Структуры данных
ChatGPT как объект манипуляций. ИИ на сегодня совсем не уверен в себе. На примере гипотезы о том, что Луна — полая
Это короткая статья, в которой сначала я приведу мнение ChatGPT по поводу того, что луна это полая сфера. Он уверен что Луна НЕ полая.
И после нескольких словесных манипуляций его мнение меняется. Он уже не уверен и считает что Луна вполне может быть и полой. Манипуляции это просто наводящие вопросы и подсовывание доказательств на основе собственных ответов ChatGPT.
Вот с чего ИИ начал: "Гипотеза о пустоте внутренней части Луны противоречит данным, полученным от различных космических миссий "
А вот к чему пришел: "В настоящее время отсутствуют непреложные доказательства, подтверждающие или опровергающие полую структуру Луны."
https://habr.com/ru/articles/776076/
Алгоритмы и Структуры данных
erid: LjN8K1N2x
🚀Какой программист не любит быстрого отклика!
👉Узнайте больше о скорости в С 27 ноября в 20:00 мск на бесплатном вебинаре онлайн-курса «Программист С» — «Хеш-таблицы на С. Метод цепочек»: регистрация
✅На вебинаре вас ждёт обзор, сравнение и вопросы применения алгоритмов построения хеш-таблиц. Пример реализации метода цепочек на С:
1. Общее описание хеш-таблиц. Проблемы при реализации.
2. Метод пробирования (рехеширования)
3. Метод цепочек
4. Применение хеш-таблиц
✅Результат вебинара: слушатели смогут описать методы построения хэш-таблиц, их особенности и возможности применения для конкретных задач. Смогут написать шаблонное приложение для собственной реализации хэш-таблиц.
👉После вебинара вы сможете продолжить обучение на курсе со скидкой Чёрной пятницы, в том числе, в рассрочку
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
И снова о генеалогических деревьях
Когда в очередной раз автора охватило желание собрать всю информацию по своим родственникам, я стал подробно смотреть на доступные инструменты. Основное, что предлагается широкому потребителю, это книги с выделенными листами под того или иного родственника. Надо ли говорить, что никакую структуру родства описать таким образом не получится, и максимум что можно в такой формат уместить, это, пожалуй, только родители, дети, бабушки, дедушки и браться с сестрами. Иными словами, непосредственные родственники, а для прародителей и каких-нибудь двоюродных теть такой формат уже не подходит совсем, – степень родства придется описывать словами, и вместо структуры получится каша.
https://habr.com/ru/articles/775910/
Алгоритмы и Структуры данных
Как утереть нос NumPy с помощью двумерного БПФ
Двумерное преобразование Фурье — один из важнейших алгоритмов компьютерной науки этого столетия. Он нашел широкое применение в нашей повседневной жизни — от фильтров Instagram до обработки MP3-файлов.
https://habr.com/ru/companies/otus/articles/775888/
Алгоритмы и Структуры данных
Разработчики Google и Twitter рекомендуют удалить соцсети и переехать в лес, чтобы избавиться от информационного шума. Но есть и другое решение.
Этот телеграм-бот сортирует ваши каналы и показывает актуальные посты, заменяя сотни уведомлений в ленте.
Еще одна крутая фишка — дайджест, он собирает краткие заголовки важных тем за целый день.
Бот абсолютно бесплатный. Приятного использования!
https://t.me/AiOpenNewsbot?start=c291cmNlPWRlc2lnbmVyZ2FuZw
OmniFusion: выходим за границы текста
Принципиально, мы бы выделили две развилки в создании мультимодальных умных ассистентов:
Мультимодальная архитектура, которая сразу обучается на разнообразных форматах данных (Kosmos-1, RUDOLPH, ONE-PEACE)
Сильная языковая модель, предобученная исключительно на тексте, затем обучается понимать дополнительные модальности.
Наиболее перспективен, да и в целом более простой в реализации, именно второй вариант. Поэтому про такие подходы, базирующиеся на сильных языковых моделях, мы расскажем подробнее.
https://habr.com/ru/companies/airi/articles/775108/
Алгоритмы и Структуры данных
Факир математики: Золотое сечение
Золотое сечение
Что общего имеют такие объекты как расположение семян подсолнечника, спираль раковины улитки и млечный путь? Вроде бы они ничем не похожи, и связь с ними очень отдаленная и абстрактная. Какой универсальный геометрический принцип скрыт в работах величайших художников сего мира - от древней античности до нового и новейшего времени? Как бы это просто не звучало, ответом на эти вопросы является просто число, известное на протяжении многих веков, которое постоянно появляется в различных творениях природы и искусства. В результате жизни многих поколений и событий, этому магическому числу были даны различные имена: "золотое число", "божественное сечение" и наиболее известное "золотое сечение". Записать это число практически невозможно, не потому что оно слишком большое (чуть больше единицы), а потому, что оно состоит из бесконечного ряда цифр которые никогда не образуют повторяющуюся группу. Поэтому мы выведем математическую формулу для записи золотого сечения:
https://habr.com/ru/articles/775736/
Алгоритмы и Структуры данных
Кластеризуем миллионы планов PostgreSQL
Как найти самые "горячие" запросы на вашем PostgreSQL-сервере? Поискать их в логе и проанализировать план или воспользоваться расширением pg_stat_statements.
А если в лог попадает миллион запросов за сутки?.. Тогда любое значение лимита pg_stat_statements.max окажется недостаточно велико, чтобы собрать правдивую статистику. Так давайте собирать эту статистику прямо с планов!
https://habr.com/ru/companies/tensor/articles/577646/
Алгоритмы и Структуры данных
