Всё про Алгоритмы и Структуры данных
Kanalga Telegram’da o‘tish
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество, авторские права: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/structuredata
Ko'proq ko'rsatish7 757
Obunachilar
-224 soatlar
-57 kunlar
-2830 kunlar
Postlar arxiv
Срочно! Ищут людей, которые хотят бесплатно поехать по городам России
Ростуризм объявил акцию для всех россиян. Нужен лишь паспорт, отличное настроение и желание путешествовать.
Что нужно: подать заявку на тур –> выбрать любое направление из доступ –> пожить в 4-5-звёздочных отелях –> получить за это 80-120 тысяч рублей.
Оставить заявку можно, перейдя на этот канал.
Прямо сейчас:
• поехать изучать Соловецкий монастырь и получить 85 тысяч рублей
• посетить Курильские острова всей семьей за отзыв
• отдохнуть во всех 5-звёздочных отелях Питера бесплатно
Переходите на канал, если устали сидеть дома и никуда не путешествовать, когда есть такие возможности. Так что переходите, вот ссылка: @freetravel
Искусственный интеллект? Или не совсем искусcтвенный?
Здесь я, в поисках идей для искуственного интеллекта, постараюсь провести параллель между человеческим интеллектом и машинным.
Нас с ЭВМ обьединяет то, что мы реагируем на события. Человек и животное реагирует на раздражители, ЭВМ - на сигналы от периферии. В ЭВМ или МК эффект человекоподобного искусственного интеллекта даёт набор обработчиков различных ситуаций (прерываний, ошибок, исключений) - этаких машинных рефлеков. Но, как можно заметить, контекст выстраивается в машинном и человеческом интеллекте разными способами. Человек и ЭВМ сохраняют контекст по разному. В ЭВМ пришёл сигнал от периферии - выполнение предыдущей программы прерывается. Обработчик завершается - ЭВМ возвращается в прерванную программу. Человек контекст не сохраняет. Если человек возвращается к какой то прерванной задаче, то это потому что есть стойкий раздражитель. Вы читаете книгу, вам кто то звонит. А по завершении разговора, вы возвращаетесь к книге, если вы никуда не ушли, ведь книга лежит на том же месте.
https://habr.com/ru/articles/648639/
Алгоритмы и Структуры данных
Big O нотация в Swift
Что такое Big O нотация?
Обозначение Big O нотация (или просто Big O) — это способ оценки относительной производительности структуры данных или алгоритма, обычно по двум осям: времени и пространству.
Доминирующие операции
Способ, которым мы определяем Big O алгоритмов, заключается в том, чтобы посмотреть на худшую производительность в его доминирующих операциях.
https://habr.com/ru/articles/645723/
Алгоритмы и Структуры данных
Жизнь как граф
Предлагаю обсудить философскую тему. Что если представить нашу жизнь как взвешенный ориентированный ациклический граф? Визуализация графа приведена на рисунке:
https://habr.com/ru/articles/645795/
Алгоритмы и Структуры данных
Формула Бине без плавающей точки
Красивая формула Бине для чисел Фибоначчи содержит иррациональность - квадратный корень из пяти. Это делает ее непригодной для точного вычисления больших чисел Фибоначчи. Это кажется вполне очевидным. Предлагаю способ, как избавиться от зловредного корня и сделать формулу Бине пригодной для точных вычислений.
https://habr.com/ru/articles/645829/
Алгоритмы и Структуры данных
Разбираем задачу T9 (predictive text)
На днях ко мне обратился ученик на одном из ресурсов, где я выступаю в качестве frontend-ментора, с просьбой разобрать одну задачу. Суть задачи состояла в следующем:
Найти все доступные комбинаций предложений, полученных методом T9 (predictive text)
https://habr.com/ru/articles/599029/
Алгоритмы и Структуры данных
Всего за 5 минут определите подходящую вам IT-профессию.
Онлайн-школа Skillfactory разработала уникальный профориентационный тест из 16 вопросов. Ответив на них, узнаете наиболее подходящую вам специальность.
Работайте в российских или зарубежных компаниях, в офисе или удаленно. Для айтишников — сниженная ставка по ипотеке, высокая зарплата, комфортные условия и гибкий график.
Переходите по специальной ссылке, чтобы пройти тест, получить карьерный гид по профессии и скидку 45% на обучение.
Реклама. Информация о рекламодателе по ссылкам в посте.
Верификация DataMatrix Честный знак — почему она важна
Работая в крупном разработчике и интеграторе решений для маркировки - заметил, что многие участники оборота (т.е. типографии, производители и магазины) не знают об особенностях распознавания маркировки и мало понимания как она распознается, и какие трудности могут быть при ее не правильном нанесении.
Правильность маркировки как раз проверяется ее верификацией на специальных лабораторных приборах - верификаторах 2D кода. О важности верификации для успешной продаже товара на кассе и хочу рассказать.
https://habr.com/ru/articles/599405/
Алгоритмы и Структуры данных
Как муравьи решают проблемы коммивояжёров
В математике и программировании порой используются необычные названия явлений, объектов и алгоритмов. Но почти всегда такие названия позволяют быстро понять суть описываемых сущностей. Возьмём, к примеру, широко известную задачу о коммивояжёре — найти кратчайший путь между заданными точками. И действительно, сразу представляется себе коммивояжёр, которому нужно обойти все дома в небольшом городке, но при этом затратить минимум усилий и времени. Эта задача имеет очень широкое применение, ведь оптимизация маршрутов и различных процессов — это одна из самых насущных проблем в современном, быстро меняющемся мире. Для решения этой задачи используются разные алгоритмы, один из них называется «муравьиным». С этим названием всё немного сложнее. Для того, чтобы разобраться с этим алгоритмом, нам для начала нужно присмотреться к поведению муравьёв в их необычном организованном мире.
https://habr.com/ru/articles/599093/
Алгоритмы и Структуры данных
Мой первый опыт решения неточных задач или почему стоит заниматься олимпиадами
Только что закончился vk winter quest — мини соревнование по решению неточных задач, о котором я совершенно случайно узнал за день до начала и решил, что это будет неплохим способом занять время на новогодних каникулах. Задача, которую предлагалось решить, была связана с гонками на клетчатой бумаге. Опуская некоторые подробности (о которых вы можете почитать на сайте соревнования), задача заключалась в том, чтобы из заданной стартовой клетки обойти за наименьшее количество шагов все целевые клетки. Неожиданно для меня, мое решение показало себя очень хорошо и забралось в топ-3. Наверное поэтому меня и попросили его описать, чем я сейчас и буду заниматься, попутно объясняя, как я к нему пришел.
https://habr.com/ru/articles/600003/
Алгоритмы и Структуры данных
Собчак узнаёт о мире из папок. Чем вы хуже?
В день выходит около миллиарда постов. Каждый — угроза вашей психике.
Держите голову холодной, читайте только главное ⬇️
«Политическая папка»: от геополитической игры до списка чиновников-интересантов. Ваш пропуск за кулисы власти.
«Экономическая папка»: без прогнозов в воздух — только аналитика от первых экономистов страны. Гарантия прибыли для вашего портфеля акций.
«Медиапапка»: горячие скандалы с участием топовых звёзд и рекламные кампании лидеров рынка. Учитесь информационной войне на конкретных примерах.
«Индустрия 4.0»: прорывы в айти, VR, нейросетях, финтехе, добыче ископаемых и нефтегазовой отрасли. Только те новости, что изменят вашу жизнь уже завтра.
Четыре подписки вместо тысячи бестолковых каналов ⬆️
Муравей Лэнгтона — загадочный клеточный автомат
В мире существует около 14 000 видов муравьёв, каждый из которых имеет собственное название. Но, даже если вы зададитесь такой целью, вы не найдёте ни в одном биологическом справочнике муравья Лэнгтона. Дело в том, что этот муравей — математическая абстракция, модель для описания поведения динамической системы. Иногда кажется, что математики вообще неравнодушны к муравьям — вспомним хотя бы уже ставший классическим муравьиный алгоритм. Да и во всяких логических моделях и задачах муравьи встречаются довольно часто.
От хаоса к строгому порядку
Познакомимся с муравьём Лэнгтона поближе. Он живёт на бесконечной плоскости, состоящей из белых клеток. У него есть два неиссякаемых ведёрка — одно с белой краской, другое с чёрной. Муравей перемещается по клеткам плоскости от одной клетки к другой. При этом он выполняет несложный алгоритм:
1.Если клетка белая, то муравей перекрашивает её в чёрный цвет, поворачивает на 90° направо (по часовой стрелке) и делает шаг вперёд.
2.Если клетка чёрная, то муравей перекрашивает её в белый цвет, поворачивает на 90° налево (против часовой стрелки) и делает шаг вперёд.
Вот, собственно, и всё. Невесёлая жизнь у муравья Лэнгтона, но, как мы увидим, он не готов мириться с такой возмутительной ситуацией и всеми силами старается сбежать.
https://habr.com/ru/articles/599275/
Алгоритмы и Структуры данных
Собчак узнаёт о мире из папок. Чем вы хуже?
В день выходит около миллиарда постов. Каждый — угроза вашей психике.
Держите голову холодной, читайте только главное ⬇️
«Политическая папка»: от геополитической игры до списка чиновников-интересантов. Ваш пропуск за кулисы власти.
«Экономическая папка»: без прогнозов в воздух — только аналитика от первых экономистов страны. Гарантия прибыли для вашего портфеля акций.
«Медиапапка»: горячие скандалы с участием топовых звёзд и рекламные кампании лидеров рынка. Учитесь информационной войне на конкретных примерах.
«Индустрия 4.0»: прорывы в айти, VR, нейросетях, финтехе, добыче ископаемых и нефтегазовой отрасли. Только те новости, что изменят вашу жизнь уже завтра.
Четыре подписки вместо тысячи бестолковых каналов ⬆️
Находим более качественные решения при помощи boost
Каждый C++-разработчик хотя бы слышал о Boost – это, пожалуй, наиболее распространенный набор внешних библиотек, используемый в мире C++. Истоки большинства стандартных библиотек восходят к Boost, поскольку многие разработчики Boost также входят в состав комитета по стандартам C++ и именно они определяют, в каком направлении будет развиваться язык – поэтому можете считать Boost своеобразным дорожным указателем. Возвращаясь к заголовку этой статьи - 'Boost' содержит много популярного функционала, вспомогательных библиотек, так, что, если вы столкнулись с какой-нибудь распространенной проблемой – первым делом обращайтесь к Boost, так как велики шансы, что там для вас найдется готовое решение.
https://habr.com/ru/companies/piter/articles/650945/
Алгоритмы и Структуры данных
Как в Java устроено выделение регистров в памяти
Когда виртуальная машина Java компилирует ваш исходный код Java в машинный, одна из задач, которые она должна при этом выполнить – решить, где хранить локальные переменные Java и другие подобные временные значения. В вашей машине отсутствует концепция локальных переменных, поэтому на этапе компиляции необходимо определиться, какое место в памяти стека (какой машинный регистр) будет использоваться для хранения каждой переменной. Эта операция называется «выделение регистров». Может показаться, что выделение регистров – сложная абстрактная теоретическая тема, но в этом коротком посте я покажу, как сначала соотнести исходный код Java с теорией, потом понять, как его видит компилятор, а потом – показать результирующий машинный код. В данном случае моя цель – продемонстрировать, что все эти концепции очень легко опробовать на практике с реальным компилятором.
https://habr.com/ru/companies/piter/articles/645949/
Алгоритмы и Структуры данных
Сравнение матричной факторизации с трансформерами на наборе данных MovieLens с применением библиотеки pytorch-acceleratd
Современный человек много чем занимается в интернете: ходит по магазинам, слушает музыку, читает новости. Все эти задачи подразумевают поиск и выбор того, что ему нужно. При этом важную роль тут играют рекомендательные системы. Они помогают людям не утонуть в многообразии вариантов и увидеть именно то, что им подойдёт, то, что иначе им сложно было бы найти. Предоставление пользователям качественных рекомендаций — это важнейшая часть обеспечения первоклассного уровня удовлетворения клиента. Это — один из самых эффективных способов взращивания лояльности клиентов и повышения ценности продукта или услуги в их глазах. Всё это так важно, что целые бизнес-модели некоторых компаний построены вокруг предоставления их клиентам наилучших рекомендаций, что делает рекомендательные системы важнейшими факторами, влияющими на прибыль подобных компаний! В результате неудивительно то, что клиенты проекта Microsoft CSE часто обращаются к нам с просьбами, касающимися реализации эталонных рекомендательных техник. Один из таких проектов был моим первым опытом в данной сфере.
https://habr.com/ru/companies/wunderfund/articles/645921/
Алгоритмы и Структуры данных
Построение годографа точки звуковой волны в изотропной среде при изменении ветра по высоте в вертикальной плоскости
В предыдущей статье было обещано, что будет рассказано о программе–демонстраторе численного интегрирования годографа точки звуковой волны. В программе–демонстратор учитывается деформацию полусферической звуковой волны, которое вызывает искривление звуковых лучей от ветра, характеризующегося увеличением скорости с ростом высоты.
https://habr.com/ru/articles/796863/
Алгоритмы и Структуры данных
Инь-Янь консолидация для процедурной генерации границ
Способ процедурной генерации граничного перехода от одной среды к другой, которые заданы на какой-либо регулярной решетке точек в квадрате или равностороннем треугольнике. Допускает обобщение на произвольные фигуры, а также на любые тайловые покрытия.
https://habr.com/ru/companies/timeweb/articles/792224/
Алгоритмы и Структуры данных
Нахождение порогов с оптимальным балансом классов
Решим такую алгоритмическую задачу: дано множество точек (x_i,y_i) на плоскости, имеющих метки 0 или 1. Требуется выделить область \{x\geq a \,\&\, y \geq b\}, в которой отношение числа 1 к числу 0 максимально, при условии, что число нулей в этой области не меньше заданного числа.
Упорядочим все точки по убыванию y_i. Будем поддерживать структуру данных, которая ответит на вопрос: сколько всего чисел, добавленных в структуру, не меньше заданного числа? Тогда, если добавлять в эту структуру координаты x_i всех точек, а также поддерживать упорядоченное множество значений x-координат точек с меткой 1, то алгоритм будет следующим. Для каждой просмотренной точки с меткой 1 найти количество точек с x-координатами, превосходящими координату текущей точки. Количество всех просмотренных точек с меткой 1, попавших в эту область, находится как индекс текущей точки в упорядоченном множестве.
Для реализации упорядоченного множества с функциями добавления элемента и поиска количества элементов, не меньших заданного (нахождение индекса) применяется сбалансированное дерево двоичного поиска, а точнее, дерево порядковых статистик. В Python упомянутая структура данных реализована в контейнере SortedList из библиотеки sortedcontainers. Сложность алгоритма составила O(m^2\log^2n), где n - число всех точек, m - число единиц.
https://habr.com/ru/articles/796599/
Алгоритмы и Структуры данных
Кодируем крестики-нолики в 15 битах
Недавно я наткнулся на пост Алехандры Гонсалес (@blyxyas), в которой рассказывается о попытке сжать игру крестики-нолики в минимальное количество битов. Она пришла к решению из 18 битов. Это заставило меня задуматься: а можно ли улучшить этот результат?
https://habr.com/ru/articles/796721/
Алгоритмы и Структуры данных
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
