Как стать автором
Обновить
191.49
Рейтинг

Алгоритмы

Все об алгоритмах

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Найти подстроку в строке

ПрограммированиеАлгоритмы
Из песочницы

Алгоритм поиска строки Бойера — Мура — алгоритм общего назначения, предназначенный для поиска подстроки в строке.

Давайте попробуем найти вхождение подстроки в строку.

Подготовка к собеседованию
Всего голосов 10: ↑10 и ↓0 +10
Просмотры1.3K
Комментарии 3

Новости

Показать еще

Как мы создали Web приложение для определения лиц и масок для Google Chrome (часть 2)

JavaScriptПрограммированиеАлгоритмыОбработка изображенийМашинное обучение
Перевод
Определение лица и маски
В предыдущей статье я рассказывал о том, можно ли использовать машинное обучение (в частности определение лица и маски) в браузере, подходах к детекции и оптимизации всех процессов.
Сегодня я хочу рассказать о технических подробностях реализации.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры1.2K
Комментарии 1

Как улучшить блок-схемы алгоритмов по ГОСТ 19.701-90? Эргономичный визуальный алгоритмический язык ДРАКОН. Критерии

ПрограммированиеАлгоритмыПрограммирование микроконтроллеровБизнес-моделиВизуальное программирование

Статья содержит анализ и критику стандарта ГОСТ 19.701-90 в части схем алгоритмов. Предлагается для записи алгоритмов создать новый стандарт, основанный на эргономичном визуальном алгоритмическом языке ДРАКОН. Дается сравнительный анализ блок-схем алгоритмов по ГОСТ 19.701-90 и дракон-схем.

Читать далее
Всего голосов 32: ↑24 и ↓8 +16
Просмотры3.5K
Комментарии 44

Powershell настоящий язык программирования. Скрипт оптимизации рутины в техподдержке

Программирование.NETPowerShellАлгоритмыРазработка под Windows
Из песочницы
Tutorial

Работая в компании IT-аутсорса в качестве руководителя 3 линии поддержки, задумался, как автоматизировать подключение сотрудников по RDP, через VPN к серверам десятков клиентов.

Таблички с адресами, паролями и прочими настройками серверов, конечно, хорошо, но поиск клиента и вбивание адресов с аккаунтами занимает довольно существенное время.

Держать все подключения к VPN в Windows не самая лучшая идея, да и при переустановке оного, создавать VPNы тоже не доставляет удовольствие.

Задача, к тому же, осложняется тем, что у некоторых клиентов pptp, у кого-то l2tp, у некоторых несколько подсетей, туннели и т.п.

В результате, для начала был написан скрипты на Powershell для каждого клиента, но позже они переродились в некое приложение, написанное с помощью того же Powershell.

До написания этого скрипта-приложения программированием не занимался вообще, разве что лет 20 назад что-то пописывал на VBS в MS Excel и MS Access, поэтому не гарантирую красивость кода и принимаю критику от опытных программистов, как можно было бы сделать красивее.

В Powershell, начиная с Windows 8 и, конечно в Windows 10, появилась прекрасная возможность создавать VPN подключения командой Add-VpnConnection и указывать какие маршруты использовать с этими соединениями командой Add-VpnConnectionRoute.

На основании этих команд и создано данное приложение. Но, обо всем по порядку.

Для начала, создаем в Google Disk таблицу с именованными столбцами:
Number; Name; VPNname; ServerAddress; RemoteNetwork; VPNLogin; VPNPass; VPNType; l2tpPsk; RDPcomp; RDPuser; RDPpass; DefaultGateway; PortWinbox; WinboxLogin; WinboxPwd; Link; Inform

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Просмотры7.9K
Комментарии 53

DataScience Digest — 17.06.21

PythonАлгоритмыBig DataМашинное обучениеИскусственный интеллект

Приветствую всех!

Встречайте свежий выпуск дайджеста полезных материалов из мира Data Science & Machine Learning и не забывайте подписываться на наш Telegram-канал.

Читать далее
Рейтинг 0
Просмотры1.5K
Комментарии 0

DeepMind считает, что обучения с подкреплением хватит для разработки сильной формы искусственного интеллекта

Блог компании Neuro.netАлгоритмыНаучно-популярноеИскусственный интеллект
Перевод
image

В многолетней погоне за созданием искусственного интеллекта IT-специалисты спроектировали и разработали всевозможные сложные механизмы и технологии для создания аналогов зрения, языка, мышления, моторики и других способностей, присущих разумной жизни. Хотя эти усилия и привели к созданию систем слабой формы искусственного интеллекта, которые могут эффективно решать определенные проблемы в ограниченных условиях и окружении, такие системы и в подметки не годятся уровню интеллекта не только людей, но и животных.

В новой статье, опубликованной в рецензируемом научном журнале Artificial Intelligence, ученые из DeepMind утверждают, что интеллект и связанные с ним способности появятся не в результате формулирования и решения сложных проблем, а в результате соблюдения простого, но действенного принципа: максимизация вознаграждения. Речь идет про обучение с подкреплением.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры4.5K
Комментарии 57

Как купить видеокарты по рекомендованным ценам и даже дешевле

КриптографияПлатежные системыАлгоритмыGPGPUРаспределённые системы
Recovery mode

Всё мировое игровое (и не только) сообщество уже долгие годы находится под гнетом майнеров, стонет от дефицита видеокарт и заоблачных цен на них. Чтобы с чем то бороться особенно без затрат, надо понять специфику процесса и где у него тонкое место. Если смотреть на технологию криптовалют и криптомайнинг в целом - это просто хорошая современная технология цифровых денег. Таковой её и позиционируют долгие годы, представляя нам как независимую, децентрализованную, свободную, надежную денежную альтернативу фиатным и централизованным электронным деньгам. Так в чем проблема? Казалось бы, бери и пользуйся технологией, еще и получай прибыль.

Так это и преподносили многие блогеры и популяризаторы криптовалюты - "купи видеокарту(ы), майни, играй еще и отбей её стоимость, а дальше еще и прибыль получай". Причем они не только это пропагандировали, но и многие своим примером показывали и показывают, что это работает. И действительно, почему майнеры готовы купить видеокарту и за 100 и за 200 и более тысяч рублей? Ответ прост, они отбивают эти деньги и далее получают прибыль. И это легко доказать логически - иначе бы они это не делали. Почему же так не делать каждому школьнику, и почему в итоге так и не случилось, хотя все смотрят блогеров и даже пытались так делать выполняя точные не сложные инструкции, и это так просто? При этом иметь видеокарту, поддерживать децентрализацию "классной" современной технологии, помогать прогрессу, да еще и иметь прибыль с этого.

Во тут то и надо вскрыть нюансы, о которых популяризаторы криптовалют и майнеры не упомянают. Почему большинство людей, кому нужна видеокарта не пользуются таким "хорошим" способом её практически бесплатного владения и даже с просчитанной прибылью?

Понеслась
Всего голосов 47: ↑6 и ↓41 -35
Просмотры8.4K
Комментарии 52

Как я пытался придумать новый подход к изучению алгоритмов через интерактивные визуализации

PythonПрограммированиеАлгоритмыВизуализация данныхУчебный процесс в IT

Представьте человека, который изучает алгоритмы. Чтобы понять как они работают, приходится разбираться в их коде и представлять, как компьютер будет его выполнять. Это странно — почему мы должны учиться думать как компьютер, вместо того, чтобы заставить его помогать нам? Какая-то сильная технозависимость.

На мой взгляд, потеть должна машина, а человек учиться, не выворачивая мозги наизнанку. Поэтому я подумал, а почему бы не визуализировать работу алгоритмов? Визуализации помогли бы не закапываться в код, а наглядно показали бы как работают алгоритмы и позволили бы понять их. Что у меня получилось — читайте в этой статье.

Читать далее
Всего голосов 95: ↑95 и ↓0 +95
Просмотры16.2K
Комментарии 45

Исследование операций

Информационная безопасностьКриптографияАлгоритмыМатематикаНаучно-популярное

При функционировании больших сложно устроенных систем в них, как правило, протекают многообразные процессы, сущность которых состоит в различного рода преобразованиях физико-химической субстанции из сырья в конечный продукт, поставляемый на рынок. Наряду с материальной субстанцией в производственных процессах широко используется информация управленческая и технологическая. Когда-то не в столь давние времена достаточно сложным механизмом, системой считался часовой механизм, реализуемый зацеплением шестеренок. Механизм преобразовывал временную субстанцию в информацию. Выходным продуктом такого механизма была информация - сведения о текущем временном моменте, к точности которой уже в те времена предъявлялись жесткие требования. Все процессы сложных производственных систем также, подобно механизму часов, постоянно должны быть в "зацеплении", тесно взаимодействовать, протекать синхронно и согласованно. Главным требованием к такой системе с шестеренками была точность отсчетов временных промежутков. Точность нужна везде от водных, наземных, воздушных транспортных систем до спутниковых космических, атомных энергетических станций. Исследуя операции следует помнить об истории их появления и проявления в различных отраслях хозяйства и производства.

Читать далее
Рейтинг 0
Просмотры1.2K
Комментарии 0

Запросить 100 серверов нельзя оптимизировать код. Ставим запятую

Блог компании RUVDS.comPythonАлгоритмыBig DataR

Можно выделить ряд алгоритмов, которые являются базовыми и лежат в основе практически каждой строчки программ, написанных на языках высокого уровня. Хорошо иметь под руками классический многотомный труд Дональда Кнута "The Art of Computer Programming", там детально разобраны многие базовые алгоритмы. Но прочесть и усвоить все — задача, требующая много усилий и времени, которая должна как-то быть мотивирована.


Многие могут предположить, что нюансы необходимо было знать 50 лет назад, а сейчас можно пользоваться готовыми пакетами и функциями и не погружаться в детали. Однако, это далеко не так. Равно как никто не отменял важность понимания представления методов хранения данных в памяти и их обработки в процессоре.


Далее разберем нюансы на примере функций сортировки. Сортировка и поиск используются максимально часто во всех манипуляциях с данными. Экономия нескольких миллисекунд на операции может приводить к суммарному сокращению часов расчета на значительных данных.


Является продолжением серии предыдущих публикаций.

Читать дальше →
Всего голосов 48: ↑47 и ↓1 +46
Просмотры4K
Комментарии 2

Как синхронизировать сценарий без транзакций? Штатными средствами Java

JavaАлгоритмыAPIООПБраузеры
Tutorial

Давайте представим, что вы параноик, и параноик вдвойне, когда дело касается многопоточности. Предположим, что вы делаете backend некого функционала приложения, а приложение переодически дергает на вашем серверы какие-то методы. Все вроде хорошо, но есть одно но. Что если ваш функционал напрямую зависит от каких-либо других данных, того же банального профиля например? Встает вопрос, как гарантировать то, что сценарий отработает именно так, как вы планировали и не будет каких-либо сюрпризов? Транзакции? Да это можно использовать, но что если Вы фантастический параноик и уже представляете как к вам на сервер летит 10 запросов к одному методу от разных клиентов и все строго в одно время. А в этот момент бизнес-логика данного метода завязана на 100500 разных данных. Как всем этим управлять? Можно просто синхронизировать метод и все. Но что если летят еще и те запросы, держать которые нет смысла? Тут уже начинаются костыли. Я пару раз уже задавался подобным вопросом, и были интересно, ведь задача до абсурда простая и повседневная (если вы заботитесь о том, чтобы не было логических багов конечно же ). Сегодня решил подумать, как это можно очень просто и без костылей реализовать. И решение вышло буквально на 100 строк кода.

Немного наглядного примера

Давайте предположим, что есть водитель и есть пассажир. Водитель не может менять машину до тех пор, пока клиент, например подтверждает поездку. Это что получается, клиент соглашался на поездку с одними характеристиками машины, а по факту у водителя другая машина? Не дела! Можно организовать что-то подобное:

Читать далее
Всего голосов 13: ↑3 и ↓10 -7
Просмотры2.8K
Комментарии 8

Корни разные нужны, корни разные важны

АлгоритмыCПрограммирование микроконтроллеров

Наблюдение комплексного влияния параметров сборки и целевой аппаратной платформы на итоговую производительность, применительно к одному и тому же исходному коду.

Исходный код содержит решение одной задачи разными алгоритмами.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Просмотры2.3K
Комментарии 0

MEX (Minimum EXcluded) Алгоритм поиска минимального отсутствующего числа

.NETАлгоритмыC#Big DataМатематика
Добрый день. Сегодня хочется поговорить о том, как найти MEX (минимальное отсутствующие число во множестве).


Мы разберем три алгоритма и посмотрим на их производительность.

Добро пожаловать под cut
Читать дальше →
Всего голосов 23: ↑10 и ↓13 -3
Просмотры3.9K
Комментарии 100

Проецирование положения объектов с камеры видеонаблюдения на карту, используя лишь школьную геометрию

Блог компании Singularis LabPythonАлгоритмыОбработка изображенийМатематика

Возможно ли превратить координаты на изображении в конкретные географические координаты? Несмотря на то, что это звучит несколько необычно, такая конвертация вполне возможна.

Сегодня я расскажу о том, как можно спроецировать координаты с плоского изображения на карту. Эта короткая статья будет своеобразным продолжением первой статьи, в которой я рассказывал о базовых возможностях Mask R-CNN.

Статья была написана в сотрудничестве с @avdosev, за что ему большое спасибо.

Начать конвертацию
Всего голосов 5: ↑5 и ↓0 +5
Просмотры2.6K
Комментарии 14

Распознаем номера автомобилей. Разработка multihead-модели в Catalyst

Блог компании SimbirSoftPythonАлгоритмыОбработка изображенийМашинное обучение

Фиксация различных нарушений, контроль доступа, розыск и отслеживание автомобилей – лишь часть задач, для которых требуется по фотографии определить номер автомобиля (государственный регистрационный знак или ГРЗ). 

В этой статье мы рассмотрим создание модели для распознавания с помощью Catalyst – одного из самых популярных высокоуровневых фреймворков для Pytorch. Он позволяет избавиться от большого количества повторяющегося из проекта в проект кода – цикла обучения, расчёта метрик, создания чекпоинтов моделей и другого – и сосредоточиться непосредственно на эксперименте.

Сделать модель для распознавания можно с помощью разных подходов, например, путем поиска и определения отдельных символов, или в виде задачи image-to-text. Мы рассмотрим модель с несколькими выходами (multihead-модель). В качестве датасета возьмём датасет с российскими номерами от проекта Nomeroff Net. Примеры изображений из датасета представлены на рис. 1.

Читать далее
Всего голосов 7: ↑4 и ↓3 +1
Просмотры1.8K
Комментарии 0

DataScience Digest — 10.06.21

PythonАлгоритмыBig DataМашинное обучениеИскусственный интеллект

Приветствую всех!

На протяжении долгого времени я не публиковал свежих выпусков Data Science Digest, а сейчас пришло время его возродить. Выходить дайджест будет еженедельно по четвергам. 

Встречайте свежий выпуск дайджеста полезных материалов из мира Data Science & Machine Learning и не забывайте подписываться на наш Telegram-канал.

Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры1.3K
Комментарии 0

Психотронная тюрьма риторики: история о том, что мешает нам мыслить здраво

Блог компании RUVDS.comАлгоритмыЧитальный залНаучно-популярноеСоциальные сети и сообщества

Аристотель придумал, что в риторике есть четыре главных способа убеждения. Пафос — через эмоции и повествование. Логос — через факты и логику. Этос — через авторитет того, что убеждает. Есть еще кайрос, фактор контекста: того, когда вас пытаются убедить и при каких условиях.

Познакомился я с ними, когда работал академконсультантом в США: помогал получать высшее образование так, чтобы иметь хорошие оценки и не тратить слишком много денег. В колледжах США риторику изучают все гуманитарии на первом курсе, иногда даже технари. И так как всю риторику сводили именно к способам убеждения, мои клиенты из Ближнего Востока и Китая часто этим возмущались. И спрашивали меня, какой скрытый смысл в том, чтобы изучать такие очевидные вещи.

Что же, ответ у меня есть. Я считаю, что этос — это бич мыслящего человека. Кайрос — кандалы, который выковал информационный век. А понимание того, как работает риторика — базовый инструмент критического мышления. Особенно для IT-специалиста.

Я так много рассказывал об этом на кухнях и в чатах, что решил написать статью. А получился лонгрид с научными исследованиями, разбором влияния алгоритмических новостных лент, и безумным комиксом из мемов, который я делал 4 часа в Фигме. Поехали!

UPD Большое спасибо всем тем людям, что помогли мне исправить ошибки и очепятки! Только на Хабре так стремятся помочь, и это неоценимо.
Читать дальше →
Всего голосов 188: ↑177 и ↓11 +166
Просмотры39.4K
Комментарии 348

Как Яндекс применил генеративные нейросети для поиска ответов

Блог компании ЯндексПоисковые технологииАлгоритмыМашинное обучениеNatural Language Processing


Только что мы представили новую версию поиска Y1. Она включает в себя комплекс технологических изменений. В том числе улучшения в ранжировании за счёт более глубокого применения трансформеров. Подробнее об этом направлении мой коллега Саша Готманов уже рассказывал в нашем блоге. В новой версии модель стала мощнее: количество параметров возросло в 4 раза. Но сегодня мы поговорим о других изменениях.

Когда человек вводит запрос в поисковик, он ищет информацию или способ решения своей задачи. Наша глобальная цель — помогать находить такие ответы, причём сразу в наиболее ёмком виде, чтобы сэкономить людям время. Этот тренд на ускорение решения пользовательских задач особенно заметен в последние годы. К примеру, теперь многие пользователи задают свои вопросы не текстом в поиске, а голосовому помощнику. И тут нам на помощь пришли огромные генеративные нейросети, которые способны перерабатывать, суммаризировать и представлять в ёмком виде тексты на естественном языке. Пожалуй, самой неожиданной особенностью таких сетей стала возможность быстро обучаться на всё новые задачи без необходимости собирать большие датасеты.

Сегодня мы поделимся опытом создания и внедрения технологии YaLM (Yet another Language Model), которая теперь готовит ответы для Поиска и Алисы. В этом мне помогут её создатели — Алексей Петров petrovlesha и Николай Зинов nzinov. Эта история основана на их докладе с Data Fest 2021 и описывает опыт внедрения модели в реальные продукты, поэтому будет полезна и другим специалистам в области NLP. Передаю слово Алексею и Николаю.

Читать дальше →
Всего голосов 67: ↑65 и ↓2 +63
Просмотры17.8K
Комментарии 14

Что такое алгоритм?? Part three and a quarter. «Язык»

АлгоритмыМозгNatural Language Processing

И у нас есть организмы, а называем мы их странным именем — "Алгоритмы". И если есть у нас близко два таких "Алгоритма", то может стать полезным их взаимодействие. И если оно полезно самим организмам, то в свою очередь становится полезно и нам. Ведь это тот редкий момент, в который можно, наблюдая, разобраться, как предстало на свет "Слово" из того, что есть "Логос". Ибо абсолютно, совершенно, неоспоримо и уже написано то, к чему нечего добавить.


Ἐν ἀρχῇ ἦν ὁ Λόγος.

Title

Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Просмотры1K
Комментарии 8

Задача о рюкзаке (Knapsack problem) простыми словами

.NETАлгоритмыC#
Recovery mode

Пару лет назад столкнулся с так называемой задачей о рюкзаке на одном из собеседований, нашел быстренько решение в интернете. Попытался разобрать и.... ничего не понял. Кое как поменял названия переменных, а кто так не делает когда находит готовое решение для home таски? Отправил и забыл как страшный сон. Недавно друг скинул подобную задачу про монеты и в этот раз я уже быстренько разобрался с этой когда то, как казалось мне неподъемной задачкой.

Хотел бы отметить книгу Grokking Algorithms автора Aditya Bhargava. У нее прям максимально простым языком расписаны основы алгоритмов. Так что если, вы как и я в универе думали что алгоритмы вам никогда не пригодятся, потому что FAANG это не для вас. То я вас и разочарую и обрадую, попасть туда может каждый, если конечно приложит достаточно усилий, ну а разочарую тем что вам конечно придется поднапрячься и осилить алгоритмы и чем раньше вы начнете это делать, тем лучше.

На хабре, уже есть одна статья на эту тему: Алгоритм решения задачи о рюкзаке ( версия 2, исправленная) / Хабр (habr.com) . Но, да простит меня автор, написана она максимально непонятным языком и понять там что-то без стимуляторов в виде пива или кофе решительно невозможно.

И так, перейду к делу. Сначала расскажу обо всем на пальцах, а потом мы рассмотрим решение на нашем любимом C#.

Читать далее
Всего голосов 15: ↑5 и ↓10 -5
Просмотры4.7K
Комментарии 44

Вклад авторов