es
Feedback

¡No caigas en manos de tramposos! Telemetrio encuentra y marca estos canales 👉 Si quieres ver la etiqueta, suscríbete

Data Science: Алгоритмы и Структуры данных

Data Science: Алгоритмы и Структуры данных

Ir al canal en Telegram

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

Mostrar más
7 580
Suscriptores
-524 horas
-177 días
-6030 días
Archivo de publicaciones
Когда в первый рабочий день джуном смотришь на свои задачи… Человек прошел обучение, отбор посредством собеседования, имеет багаж знаний. После освоения навыков, набравшись практики (в наши дни стать junior-разработчиокм без практики нереально) добравшись до цели в виде трудоустройства. Не успев толком продышаться сразу сталкивается с такой вещью как бизнес процессы. Пытается понять что от него хотят коллеги по работе и как тут вообще все устроено. Он чувствует растерянность. Но тут стоит оговориться что бизнес это конкурентная среда. Там всем приходится непросто. Смотрите: программист это ремесленник, инструмент которым он пользуется сложный и не понятный - это его собственный мозг. Своим мозгом он обслуживает бизнес процессы. Решает задачи за счет которых приложение работодателя остается в рабочем состоянии и развиваются с точки зрения прибыли. Поток этих задач такой, что нет времени плавно погружаться в процесс, надо срочно в бой. Если вы не знакомы с программированием, взгляните на примеры кода и вы примерно ощутите тоже самое что junior-разработчик в свой первый рабочий день. Если ИТ вас заинтересовало С мемом вроде понятно, но раз мы на Хабре, давайте копнем глубже. Представим что junior-разработчик чувствует после того как открывает книгу на 900 страниц что-бы разобраться в PHP (к слову пропорционально количеству вкладок в браузере). Думаю ощущения эти мягко говоря так себе. Открывать все это он вынужден по причине огромного количества языковых конструкций в проекте. За неимением опыта разработчику тяжело погрузиться в уже выстроенную работу с языком. И давайте поговорим зачем вообще нужно понимать что делает код. https://habr.com/ru/articles/796047/ Алгоритмы и Структуры данных

Станьте IT-специалистом с зарплатой от 100 000 рублей бесплатно 👉 Только в феврале GeekBrains дарит 3 недельное обучение на профессию Python разработчика бесплатно. Записавшись на обучение, вы получите не только технические знания, но и возможность войти в профессию с высоким спросом и перспективами для карьерного роста. Не упустите шанс начать свой путь в IT с поддержкой опытных преподавателей и располагающей обучающей средой. Зарегистрируйтесь сейчас и получите бонусом карьерную консультацию. Реклама. Информация о рекламодателе по ссылкам в посте.

Переворачивающиеся при умножении числа Расскажу о серии задач, которая случайно возникла в процессе решения другой задачи. Мне на глаза попалось равенство: 81 * 27 = 2187 – Интересно, – подумал я. – А бывают ли ещё такие числа, чтобы цифры слева и справа повторялись? Всего нашлось 7 двузначных пар, включая одну с теми же цифрами: 15 * 93 = 1395 21 * 60 = 1260 21 * 87 = 1827 27 * 81 = 2187 30 * 51 = 1530 35 * 41 = 1435 80 * 86 = 6880 Затем я решил посчитать, сколько пар n-значных чисел удовлетворяют этому свойству: набор цифр и количество повторений каждой из них слева и справа от знака "равно" совпадают. Заметим, что произведение двух n-значных чисел может иметь как 2n-1, так и 2n знаков. (Можно вычислить, что доля пар n-значных чисел, для которых в произведении 2n знаков составляет примерно 82,7%). Для небольших значений n я получил результат с помощью программы на Питоне. Алгоритм очень простой - берём все пары чисел, переводим в десятичное представление и сравниваем наборы цифр в паре чисел и в их произведении. На вычисление количества пар для n=5 ушло более 3 часов. Переписав на С++, на вычисление ушло 25 минут, но т.к. следующее значение требует рассмотрение в 100 раз больше пар, то ждать так долго не хотелось. https://habr.com/ru/articles/795935/ Алгоритмы и Структуры данных

Интерактивная диаграмма Ганта для тысяч работ В этой статье будут рассмотрены следующие проблемы: Наши пользователи хотят отображать на диаграмме 1, 3, 5, а то и 10 тысяч работ. На диаграмме работы должны быть отсортированы, при этом у некоторых имеются вложенные работы, т.е. у работы с номером '1.' может быть работа с номером '1.1.'. Работа с номером '1.1.' должна идти перед работой с номером '2.', и в то же время работа с номером '11.' должна идти после работы '2'. Лексикографическая сортировка здесь не подходит. Данные в БД изначально не отсортированы (удовлетворяют 1NF). Пользователи хотят сворачивать вложенные работы. Если есть работа с номером '1.' с 1e3 вложенных работ, и пользователь её скрывает, он должен незамедлительно увидеть сразу после неё работу '2'. Далее максимум внимания уделен архитектурным и алгоритмическим решениям сначала на фронт-энде, затем на бэк-энде. Мы используем популярное сочетание React + Nest + PostgreSQL, поэтому далее будут небольшие пояснения, как именно они ложатся на этот стэк. https://habr.com/ru/articles/795923/ Алгоритмы и Структуры данных

Pornhub заплатит $14 за просмотр каждого ролика, который длится больше 20 минут А «Вкусно и точка» подарит сертификат на 3000р, если оставить положительный отзыв в телеграме и отметить их аккаунт в сториз. Канал Лимон 🍋 находит СОТНИ бизнес-подработок, с которыми даже лодырь сможет получать лишние 60-70 тысяч. – Зритель фильмов на Кинопоиске – 4.000р за 2 часа – Автор отзывов на Google Maps – 100р/штука – Помощник блогера на ютубе – $600/мес Подпишитесь, если хотите работать на себя и получать за это неплохие деньги: https://t.me/+EZ8uccJ8lX80MWYy

Как хранить токены и пароли в программах на Python Уже на первом этапе изучения языка python я думаю все, как и я, озадачиваются вопросом – как быть с секретными данными – логины, пароли, токены и т.п. Как и где их хранить? Ну не прописывать же их явно в тексте программы, а потом еще и на Гитхабе размещать. Особенно эта тема актуальна в сфере алготрейдинга, здесь думать о доступах и секретности паролей надо в первую очередь. Информации в сети достаточно. Но я решил кратко законспектировать основные варианты, для быстрого понимания только начинающих изучать этот вопрос. https://habr.com/ru/articles/795881/ Алгоритмы и Структуры данных

Станьте Python-разработчиком за 0₽ Зарплата начинающего Python разработчика от 100 000₽, а стоимость обучения на профессию в
Станьте Python-разработчиком за 0₽ Зарплата начинающего Python разработчика от 100 000₽, а стоимость обучения на профессию в онлайн-школах от 120 000 до 300 000 рублей. Получите основы профессии и ключевые навыки за 3 недели практики. ⚠️ Переходите по ссылке и забирайте курс по Python — только до 26 февраля: https://go.2038.pro/785ad3d589bc03c0?erid=LdtCK7b7u&m=1

Разделяй и Властвуй. Разбор задач Решение задач с помощью метода "Разделяй и Властвуй" или по-английски "Divide and Conquer" является одним из базовых методов по ускорению алгоритмов. Примером тому служит переход от квадратичной сложности пузырьковой сортировки или сортировки вставками к сложности \inline O(n\log{n}) при сортировке слиянием. Или переход от линейной сложности к логарифмической, при реализации поиска элемента в отсортированном массиве (см. бинарный поиск). В этой статье мы рассмотрим два примера задач с пояснениями и кодом, в которых будет использоваться этот подход. Для начала сформулируем, разделение и властвование. Решение задачи с помощью данного подхода обладает следующими тремя свойствами: https://habr.com/ru/companies/otus/articles/599309/ Алгоритмы и Структуры данных

Подготовка к собеседованию на позицию Data Scientist. Часть 1: Live Coding Привет! Меня зовут Артем. Я работаю Data Scientist'ом в компании МегаФон (платформа для безопасной монетизации данных OneFactor). Мы строим скоринговые (credit scoring), лидогенерационные (lead generation) и антифрод (anti-fraud) модели на телеком данных, а также делаем гео-аналитику (geoanalytics). В январе 2022 года я создал репозиторий, чтобы хранить там ссылки на материалы по различным темам: подготовка к собеседованиям, computer science, data science, git, математика и многие другие. За все это время репозиторий разросся до таких размеров (и по количеству материалов, и по набору топиков), что я пришел к выводу, что нужно каким-то образом структурировать эту информацию. В итоге, блок с материалами для подготовки к собеседованиям я решил выделить в отдельный репозиторий, а для того, чтобы было понятно как эти материалы использовать, было решено написать серию статей, первую из которых вы читаете прямо сейчас. https://habr.com/ru/companies/megafon/articles/795261/ Алгоритмы и Структуры данных

Как устроен языковой сервер В этом посте я хочу прокомментировать один любопытный комментарий из базы кода rust-analyzer. Вот этот комментарий. Здесь описан интересный рекурсивный алгоритм, неоднократно встречающийся в разных аспектах программирования языковых серверов. Я видел реализации такого алгоритма на Kotlin и C#, а затем сам реализовал его на Rust. https://habr.com/ru/companies/piter/articles/795335/ Алгоритмы и Структуры данных

Новый рекорд производительности FizzBuzz 283 ГБ/с на AMD Ryzen 9 7700X. https://habr.com/ru/articles/794925/ Алгоритмы и Структуры данных

О чем говорят руки. 2 место на соревновании Kaggle Соревнование под названием Google - Isolated Sign Language Recognition проводилось на платформе Kaggle и длилось около трех месяцев. Помимо Google в организации соревнования приняли участие Технологический институт Джорджии и организация D-PAN, которая поддерживает творческих профессионалов с нарушениями слуха. Целью данного соревнования было разработать алгоритмы для распознавания жестового языка. Эта инициатива была направлена на сокращение коммуникационного барьера между глухими и слышащими людьми, предлагая технологическое решение, которое могло бы облегчить процесс обучения языку жестов. В следующих разделах я расскажу более подробно о технических аспектах соревнования, нашем подходе к решению задачи и о том, какие проблемы возникли у нас на этом пути. https://habr.com/ru/articles/795109/ Алгоритмы и Структуры данных

Полиномиальные корневые методы синтеза САУ ч.2 Леонид Маркович Скворцов. Широко известный в узких кругах математик, профессионально занимающийся математическими проблемами автоматического управления. Например, его авторские методы использованы в SimInTech. Данный текст, еще готовится к публикации. Но с разрешения автора, читатели Хабр будут первыми кто сможет оценить. Первая часть здесь... https://habr.com/ru/articles/793010/ Алгоритмы и Структуры данных

Хотите построить карьеру в сфере IT, но не знаете, с чего начать? Начните с изучения легендарного языка программирования — C+
Хотите построить карьеру в сфере IT, но не знаете, с чего начать? Начните с изучения легендарного языка программирования — C++. Разработчики на C++ работают в крупных IT-компаниях, геймдеве, веб-разработке, создают корпоративные и банковские приложения, проектируют операционные системы и софт для роботов. Зарплаты разработчиков на С++ одни из самых высоких в отрасли. По данным сервиса zarplan. com, средняя зарплата таких специалистов на декабрь 2023 — 226 300 руб. На онлайн-курсе «Профессия Разработчик на C++ с нуля» от Skillbox вы сможете освоить профессию всего за 7 месяцев: ✔️ Выучите С++ — универсальный язык, на котором пишут веб-приложения, игры, драйверы и десктопные программы. ✔️ Пополните портфолио проектами, среди которых поисковый движок. ✔️ Получите гарантию трудоустройства после курса. В противном случае — вам вернут деньги за курс. Узнать подробнее и получить скидку до 50% можно здесь: https://epic.st/TUS01p Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880

Обзор библиотеки Stan в R Stan - это библиотека на C++, предназначенная для байесовского моделирования и вывода. Она использует сэмплер NUTS, чтобы создавать апостериорные симуляции модели, основываясь на заданных пользователем моделях и данных. Так же Stan может использовать алгоритм оптимизации LBFGS для максимизации целевой функции, к примеру как логарифмическое правдоподобие. Для облегчения работы с Stan из языка программирования R доступен пакет rstan, который предоставляет интерфейс R для Stan. Сегодня мы и рассмотрим этот пакет. https://habr.com/ru/companies/otus/articles/794196/ Алгоритмы и Структуры данных

Вороной, Манхэттен, рандом Это история про то, как не довести дело до конца, но получить уйму опыта, и вообще ни разу не обломаться. Итак, у нас был один программист, один художник, абсолютное непонимание рабочего процесса, незнакомый нам игровой движок и желание что-то намутить. Если вам интересно, как в одном месте сошлись карта Вороного, частный случай расстояния Минковского, преобразования над полигонами, процедурная генерация и шумы — и все это в красивой стилизованной обертке, то вам под кат. https://habr.com/ru/articles/794572/ Алгоритмы и Структуры данных

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность. При изучении алгоритмов расслабьтесь и получайте удовольствие, ведь есть ненулевая вероятность, что вам понадобятся полученные знания вне собеса. Кто знает, может однажды умение быстро обходить двоичное дерево поможет спасти вам мир (как и знание регулярок): https://habr.com/ru/articles/794556/ Алгоритмы и Структуры данных

Работа процессора (физический препроцессор) без счётчика команд Тех кто ожидает наукоёмкости от чтения - сразу прошу не читать, тут нет ничего на что можно было-бы сослаться кроме собственнных работ, а значит и наукоёмкости публикации не содержит - прошу простить заранее за такую дерзость, и заметить что предупреждение мной всё же об этом было. На самом деле, ввиду прошлой публикации (последствия которой я постараюсь исправить, так как наверное многие решили что это плод воображения - новая архитектура) - препроцессора, так как рассматриваю процессор и пост процессор. Для того, чтобы понять ход мыслей лучше, и то, что всё это не фантазии, а результат работы - стоит ознакомиться с этой предыдущей публикацией, она не сильно длинная - но время отнимет, хоть и не сильно сложная. Ознакомившись с ней станет понятно что имеется ввиду под модификациями кода (смена формул и выключение строк кода в рантайме), под модификациями кода подразумевается просто включение и выключение исполняемых команд, кода. Изначально мной предполагалось, что кэш мостов будет состоять из параллельных частей, и скорее всего в такой архитектуре конвейера он должен будет и обеспечивать работу меток и указателей (но сейчас не про них). В каких-то публикациях мне сделали замечания что мало графики и рисунков (вроде как про поляризацию для машинного зрения), но как можно увидеть из публикации по ссылке выше - оказалось достаточно одной блок-схемы чтобы отполировать и видоизменить весь код, и даже до той степени, чтобы задуматься о новой архитектуре. https://habr.com/ru/articles/794544/ Алгоритмы и Структуры данных

Как я написал алгоритм сортировки, который быстрее std::sort Это — продолжение моей предыдущей публикации (вот — первая, вторая и третья части перевода), посвящённой тому, как я создал алгоритм сортировки, который быстрее std::sort. Эта статья — мой шанс углубиться в те детали, о которых меня спрашивали в комментариях. Я собираюсь разъяснить здесь некоторые вещи, которые оказались непонятными аудитории, и поговорить о будущем моего алгоритма, о доработках, в которых он нуждается. https://habr.com/ru/companies/wunderfund/articles/599249/ Алгоритмы и Структуры данных

Компилятор за выходные: избавляемся от переменных Насколько сложные программы вы сможете написать на питоне, не пользуясь в принципе переменными (а также агрументами функций), за исключением пары глобальных массивов? Правильный ответ: да любой сложнсти. Если что-то можно сделать на ассемблере, то уж на питоне и подавно! Правда, пусть лучше вместо нас код генерирует машина :) Продолжаем разговор о минималистичном компиляторе, который вполне реально написать за выходные. Задачей стоит транслировать код из придуманного мной языка в x86 ассемблер. Мой компилятор состоит из 611 строк кода, при этом не имеет ни единой зависимости: ssloy@khronos:~/tinycompiler$ cat *.py|wc -l 611 Несмотря на то, что целевым языком является ассемблер, я не мазохист, и пришёл к этому постепенно. Сначала я транслировал код в питон, и постепенно урезал функционал целевого языка, пока не остался голый ассемблер. Тема сегодняшнего разговора: генерация кода на питоне без использования переменных. https://habr.com/ru/articles/793524/ Алгоритмы и Структуры данных