ar
Feedback
Всё про Алгоритмы и Структуры данных

Всё про Алгоритмы и Структуры данных

الذهاب إلى القناة على Telegram

Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество, авторские права: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/structuredata

إظهار المزيد
7 757
المشتركون
-224 ساعات
-57 أيام
-2830 أيام
أرشيف المشاركات
Срочно! Ищут людей, которые хотят бесплатно поехать по городам России Ростуризм объявил акцию для всех россиян. Нужен лишь паспорт, отличное настроение и желание путешествовать. Что нужно: подать заявку на тур –> выбрать любое направление из доступ –> пожить в 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/ Алгоритмы и Структуры данных