Data Science: Алгоритмы и Структуры данных
Відкрити в Telegram
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество: @oleginc Канал на бирже: https://telega.in/c/structuredata
Показати більше7 604
Підписники
-524 години
-157 днів
-4730 днів
Архів дописів
Покоряем высоты для велонавигатора 2ГИС
26 мая 2ГИС зарелизил велонавигатор. Почитать про него можно тут. Одна из фич велонавигатора — график высот для построенного маршрута. С помощью него:
перечисляем;
как хорошо;
пользователю становится от него;
и выглядит чётко.
Эта статья о том, как мы получаем этот график:
https://habr.com/ru/companies/2gis/articles/670038/
Алгоритмы и Структуры данных
Data и ML для бизнеса. Большая конференция Яндекса
Лучшие практики применения технологий для руководителей C-level: кейсы, эксперты, обмен опытом и инсайты для вашей компании.
Зарегистрироваться
#реклама
yandex.cloud
О рекламодателе
Реклама на Яндексе
Кто круче rsync? Интересные алгоритмы для синхронизации данных
Что может быть приятнее, чем минимизировать объём бэкапа или апдейта? Это не просто экономия ресурсов, а чистая победа интеллекта над энтропией Вселенной. Исключительно силой разума мы уменьшаем размер файла, сохраняя прежний объём информации в нём, тем самым уменьшая поток фотонов в оптоволокне и снижая температуру CPU. Реальное изменение физического мира силой мысли.
https://habr.com/ru/companies/first/articles/668520/
Алгоритмы и Структуры данных
👩💻 Всем программистам посвящается!
Вот 17 авторских обучающих IT каналов по самым востребованным областям программирования:
Выбирай своё направление:
👩💻 Python — t.me/python_ready
👩💻 Java — t.me/java_ready
🖥 Базы Данных & SQL — t.me/sql_ready
🤔 Хакинг & ИБ — t.me/hacking_ready
👩💻 Linux — t.me/linux_ready
👩💻 Bash & Shell — t.me/bash_ready
👩💻 Нейросети — t.me/neuro_ready
👩💻 C/C++ — https://t.me/cpp_ready
👩💻 C# & Unity — t.me/csharp_ready
👩💻 Всё IT — t.me/it_ready
📱 GitHub — t.me/github_ready
🖼️ DevOps — t.me/devops_ready
👩💻 Frontend — t.me/frontend_ready
📱 JavaScript — t.me/javascript_ready
👩💻 Backend — t.me/backend_ready
📖 IT Книги — t.me/books_ready
🖥 Design — t.me/design_ready
📌 Гайды, шпаргалки, задачи, ресурсы и фишки для каждого языка программирования!
Совершенный алгоритм. Основы
И действительно, читается первая книга довольно быстро. Но это не только потому, что она небольшая, но и благодаря тому, что написана она довольно-таки живым интересным языком. По сути, это цикл лекций. Не справочник. Не каталог решений. Не академический труд. А именно лекции, которые читать интересно.
Тут нет нарочитой дурашливости и детскости как в "Грокаем алгоритмы". Одновременно, здесь очень подробные объяснения приведённых алгоритмов и их характеристик. Например, под разбор QuickSort отведено 40 страниц:
https://habr.com/ru/articles/671006/
Алгоритмы и Структуры данных
Мечтаете о работе из любой точки мира с высокой зарплатой, но боитесь сложностей? Тогда читайте это пост.
Мы нашли комфортную в освоении IT-профессию, с адекватным доходом и востребованностью среди работодателей на ближайшие 20 лет.
Разработчик на Python — идеальный старт!
✔️ Легче, чем Java — минимум «магии» в коде.
✔️Более востребован, чем JavaScript — 3900+ вакансий прямо сейчас.
✔️Универсальнее, чем Excel — от чат-ботов до нейросетей.
Пройдите тест за две минуты, чтобы понять, подходит ли вам профессия → получите доступ мини-курсу → соберите портфолио из сильных проектов.
👉 Сделайте первый шаг к профессии Python-разработчика — пройдите тест и заберите подборку из четырех статей для комфортного старта в подарок.
Реклама. Информация о рекламодателе по ссылкам в посте.
Решето дельт — простой способ раскладывать числа на множители, о котором вам не рассказывали
Эта история началась в далёком 1998 году. По какой-то неведомой сегодня причине, может от скуки, а может быть была какая-то задача, которую я не в силах сегодня вспомнить, но, как бы там ни было, меня заинтересовали закономерности в распределении простых чисел, т. е. таких, которые делятся без остатка только на себя и на единицу. Знакомых математиков у меня не было, а Интернет в то время был совершенно не таким, каким мы знаем его сегодня, поэтому найти в нём ответы на свои вопросы я в то время не смог.
Удивительно, но мне удалось очень быстро найти такие закономерности самостоятельно. Я обнаружил, что если взять ряд всех натуральных чисел, то есть все целые числа от единицы и больше, и разбить его на группы по 30 чисел, а затем расположить эти группы в виде строк таблицы одну под другой, то все простые числа будут расположены в столбцах этой таблицы с определёнными номерами. Исключением из этого правила являются лишь три первых простых числа: 2, 3 и 5, произведение которых между собой как раз равно 30. Другими словами, взяв любое число, можно с уверенностью сказать, может ли это число быть простым, в этом случае оно будет давать один из определённых остатков при делении на 30 — это и будет номер столбца в нашей таблице, или оно простым совершенно точно не является, оно — составное.
Долгое время я пребывал в наивной уверенности, что обладаю тайным знанием, а также в скромных мечтах, что однажды настанет день, когда мне получится поделиться им с человечеством. Конечно, всегда находились более насущные и срочные дела, пока несколько лет назад я не решил взяться за факторизацию. Честно говоря, я был довольно разочарован, когда я узнал, что моё открытие, оказывается, давно известно математикам. Как же я был наивен тогда! То, что я обнаружил тогда по наитию, легко объяснимо — любое простое число, большее 5, по определению не может делиться ни на 2, ни на 3, ни на 5. Следовательно, оно является взаимно простым с 30. Количество натуральных взаимно простых чисел с заданным числом n, меньших или равных ему, равно значению функции Эйлера для этого числа: \varphi(n). Число 30 имеет \varphi(30)=8 взаимно простых с ним чисел. Это означает, что все простые числа больше 5 будут давать один из следующих остатков при делении на 30:
https://habr.com/ru/articles/910338/
Алгоритмы и Структуры данных
Современная магистратура от Центрального университета
Хочешь развиваться в сфере ИТ и получить фундаментальные знания с практикой?
Поступай в магистратуру Центрального университета!
- 4 офлайн программы по востребованным направлениям ИТ
- Онлайн-программа по машинному обучению
- 300 мест с грантами до 1,2 млн руб.
- Вечерние занятия и учеба по выходным — удобно совмещать с работой
- Обучение по модели STEM-образования: на стыке науки, технологий и бизнеса
- Возможность стажировок и трудоустройства в ведущих компаниях
- Государственный диплом за 2 года
Магистратура в Центральном университете — это современный подход к образованию, сильный преподавательский состав и актуальные кейсы от индустрии.
Оставляй заявку на грант уже сейчас!
Подать заявку
#реклама 16+
apply.centraluniversity.ru
О рекламодателе
Во что вам обойдется конкурентная обработка. Иерархия проблем
Конкурентность сложно как следует наладить, как минимум, тем из нас, кому не повезло писать на языках, непосредственно открывающих нутро конкурентного аппаратного обеспечения: речь о потоках и разделяемой памяти. Не менее сложно организовать конкурентность так, чтобы она работала и правильно, и быстро. Все, что вы знаете об оптимизации однопоточного кода, зачастую вам не поможет. На микроуровне (отдельные инструкции) просто невозможно применить обычные правила, актуальные для μ-операций, цепочек зависимостей, пределов пропускной способности и т.д. При конкурентности правила другие.
Если этот первый абзац вселил в вас надежду, то второй ее обломает: в этой статье я не собираюсь углубленно анализировать самые низкоуровневые аспекты конкурентной производительности. Мы попросту очень многого не знаем о том, как выполняются атомарные инструкции и барьеры памяти, и эту тему мы пока отложим.
Вместо этого я собираюсь дать сравнительно высокоуровневую классификацию, которой пользуюсь для рассуждений о производительности конкурентных операций. Мы сгруппируем вопросы производительности конкурентных операций, выделив шесть обширных уровней, от быстрого к медленному, причем, каждый уровень примерно на порядок отличается по производительности от соседствующих с ним.
https://habr.com/ru/articles/671042/
Алгоритмы и Структуры данных
НКА: игры без знания о замыслах других
На стене выключатель. Нажатие которого иногда приводит к цели, иногда нет. Что означает, что выключателем может быть не то, что мы предполагаем.
Вопрос можно поставить абстрактно. Пусть имеется множество {a, b, c, d}. Некоторые из элементов могут быть состояниями, некоторые действиями.
Предположим, что действиями будут {a, b}, состояниями {c, d}. Пусть имеем: с|d=a(c), с|d=b(c), c=a(d), с|d=b(d).
Здесь "|" означает "либо". Так с|d=b(d) означает: из состояния d при действии b следует либо c, либо d.
Попробуем иначе интерпретировать. Предполагаем: действия {a, c}, состояния {b, d}. Пусть имеем: b=a(b), b|d=c(b), d=a(d), b=c(d).
Разница, если ее оценить количественно, в более однозначном поведении второй гипотезы. В первом случае коэффициент однозначности, взятый как отношение как если бы все переходы были бы однозначны к всем случившимся переходам, будет равен 4/7. Во втором случае он будет равен 4/5. Или, другими словами, мы имеем почти детерминированное пространство состояний. Для которого уже можно делать предсказания с приемлемой точностью.
https://habr.com/ru/articles/671076/
Алгоритмы и Структуры данных
+4
Найден годный конспект по LLM на русском языке
Авторы реально постарались, потому что раскрыто буквально все, что нужно, чтобы понять принцип работы современных моделей. Что внутри, если кратко:
– Необходимая математика: линал и матанализ на пальцах
– Все про механизм внимания и трансформеры
– Детальное объяснение процесса предобучения
– RL – с нуля до обучения ризонинг-моделей типа o3
– И даже полноценный гайд по тому, как самостоятельно зафайнтюнить модель.
Все – в иллюстрациях, схемах и интуитивно понятных примерах. Для наглядности прикладываю несколько страниц.
Забрать полную pdf-версию абсолютно бесплатно можно здесь
Делаем ландшафт на основе реальных данных
Я долгое время занимаюсь построением 3D копий городов в проприетарном игровом движке на основе картографических данных. Суммарно это сложная задача, успех выполнения которой заключется в решении небольшого набора больших проблем. Одной из таких проблем является отрисовка точного ландшафта на основе реальных данных. Далее я постараюсь расказать обо всех R&D этапах и технических особенностях, с которыми пришлось столкнуться, а вконце будет несколько сравнений сгенерированного ландшафта с фотографиями реальных мест (перейти).
https://habr.com/ru/articles/894762/
Алгоритмы и Структуры данных
Проверка високосности года в трёх командах CPU
Показанным ниже кодом вы можете проверить на високосность год в интервале 0 ≤ y ≤ 102499 всего примерно тремя командами CPU:
bool is_leap_year_fast(uint32_t y) {
return ((y * 1073750999) & 3221352463) <= 126976;
}
Как это работает? Ответ на удивление сложен. В статье я объясню процесс; в основном он связан с забавным битовым жонглированием. В конце мы обсудим применение этого кода на практике.
https://habr.com/ru/articles/910188/
Алгоритмы и Структуры данных
🔥Data Science — ваш билет в топ-10% IT по зарплатам. Но как войти без ошибок?
Сегодня даже средний бизнес не может обойтись без Data Science — прогнозирование, автоматизация решений, работа с нейросетями. Но чем крупнее компания, тем выше требования... и зарплаты.
Skillfactory запускает бесплатный 3-дневный мини-курс, где вы погрузитесь в реальную работу дата-сайентиста. Вот что вас ждёт:
☑️ День 1: Вы сразу пишете код на Python — не теория, а разбор реального датасета.
☑️ День 2: Строите ML-модель для прогнозирования — такую же, как используют в Сбере и Яндекс.
☑️ День 3: Разбираете ваш персональный сценарий в DS: анализ, ML или инженерия?
Запускайте курс.
🎁 После мини-курса у вас будет 3 проекта в портфолио, и вы получите в подарок: "Гайд «25 нейросетей для работы» (включая ChatGPT и Midjourney)". А также скидку 45% на полный курс, переходите по ссылке и научитесь ТОП-профессии будущего.
Кривые и что это такое ч.2
Как вы помните, в прошлой части я предложил два примера кривой. Одна интерполирует на отрезке между двумя точками, но учитывает еще и соседние точки. Другая интерполирует на всем отрезке и в каждой точке интерполяции учитывает все данные точки. Говорить мы будет о последней.
https://habr.com/ru/articles/671078/
Алгоритмы и Структуры данных
Как работает неточное сравнение строк
Недавно я писал API для динамически меняющихся обоев. Обои меняются каждый день, но могут и каждые 2 часа в зависимости от обстановки в мире, например, если вышла какая-то экстраординарная новость, то показывает картинку в соответствии с данной новостью или сейчас проходит какой-то праздник, соответственно также показывает картинку с данным праздником.
В моем проекте мне понадобилось сравнивать строки между собой, я поизучал как работает неточное сравнение строк и какие алгоритмы вообще существуют и готов поделиться с вами моим опытом.
https://habr.com/ru/articles/671136/
Алгоритмы и Структуры данных
Анимированое сравнение алгоритмов сортировки
На днях наткнулся на интересную страничку, позволяющую наглядно оценить различные алгоритмы сортировки на разных наборах данных.
https://habr.com/ru/articles/27788/
Алгоритмы и Структуры данных
Узнай подходящую тебе карьеру за 5 минут.
Онлайн-школа участник проекта "Сколково" создала уникальный инструмент профориентации, который раскроет ваш потенциал. Простой тест с вариантами ответа, менее чем из 20 вопросов.
В конечный результат вошли только самые востребованные профессии для 2025 года, большинство специальностей из сферы IT и Дизайна, именно в них на сегодня наибольшие доходы.
Переходите по специальной ссылке, получите карьерную консультацию в подарок, и разберите индивидуально ваш комфортный переход в новую профессию.
Реклама. Информация о рекламодателе по ссылкам в посте.
Основные алгоритмы сортировки. Разбираемся с танцами (это не шутка)
Два распространенных алгоритма могут ускользать от понимания. В чем отличие разбиения в быстрой сортировке и похожих «магических» движений в сортировке слиянием? Меня это долго сбивало с толку. Разберемся же с ними наконец!
https://habr.com/ru/companies/selectel/articles/910086/
Алгоритмы и Структуры данных
Математическое решение царской игры Ура
Мы потратили семь лет на эксперименты с ИИ для царской игры Ура, и, наконец, пришли к сильному решению по правилам Финкеля, Блица и Мастерса! В конечном итоге, для этого понадобилась пара красивых уравнений, которые я объясню в статье.
На самом деле, мы не «просто» нашли сильное решение игры. Для сильного решения необходимо находить наилучший ход из каждой позиции. Мы сделали это, плюс вычислили точную вероятность победы каждого игрока при оптимальной игре из каждой позиции. Для этого мы воспользовались нашей опенсорсной библиотекой RoyalUr-Java.
https://habr.com/ru/articles/907912/
Алгоритмы и Структуры данных
