Как стать автором
Обновить
180.79

Алгоритмы *

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

Сначала показывать
Порог рейтинга
Уровень сложности

Прародитель T1000: алгоритм динамической морфологии мягких роботов

Время на прочтение12 мин
Количество просмотров139


Первые роботы, чей внешний вид напоминал Железного Дровосека, постепенно уступают дорогу мягким роботам, спектр применения которых растет с каждым новым исследованием. Мягкие роботы могут оперировать в условиях и средах, которые были бы недостижимы их жестким собратьям. Однако, развитие и совершенствование мягкой робототехники далеко от завершения. К примеру, ученые из Массачусетского технологического института (Кембридж, США) разработали новый метод машинного обучения, который позволит динамически управлять роботами с адаптируемой морфологией. В чем суть данного метода, насколько он эффективен, и где могут быть применены «желеобразные» роботы? Ответы на эти вопросы мы найдем в докладе ученых.
Читать дальше →
Рейтинг0
Комментарии0

Новости

Многообразие связных списков

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.5K

Связный список – классическая структура данных, которая позволяет быстрые вставки/удаления, но при этом просаживает другие операции (случайный доступ к элементу). Мы пройдёмся от базовой реализации до других возможных вариаций этой структуры данных и, надеюсь, вместе узнаем что-то новое. Краем глаза увидим возможные применения связных списков. И в конце, для любителей C++, бонус: использование связного списка для сбора диагностики выделений динамической памяти в вашем коде.

Связать себя со знаниями!
Всего голосов 10: ↑10 и ↓0+11
Комментарии3

Falang: Low-сode конструктор логики с экcпортом в C++, C#, Rust, Go, TypeScript

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.6K

Полтора года назад я рассказывал про свой пет-проект по визуальному программированию - falang.io. Основная его особенность состоит в том, что пользователь не управляет расположением икон на схеме, только их содержимым. Все остальные соединительные линии рисуются автоматически алгоритмом по строгим правилам. В т.ч. continue, break, return.

На данный момент, помимо обычных текстовых диаграмм, у меня появился Low-code констркутор логики с упрощенной семантикой, который может экспортироваться в 5 современных языков программирования: C++, C#, Rust, Go, TypeScript.

Читать далее
Всего голосов 6: ↑6 и ↓0+8
Комментарии3

Коммивояжер на GPU

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.6K

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

Динамическое программирование — это метод решения сложных задач путём разбиения их на более мелкие подзадачи, решение которых легче и проще.

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

Читать далее
Всего голосов 6: ↑6 и ↓0+9
Комментарии4

Истории

«Я в топ 4% мира на LeetCode» — это оказалось на удивление просто и недолго

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров19K

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

«То настроения, то сил нету, то задачи не понимаю.. Начинаю раз в полгода и бросаю» — самый обычный набор приколов, которые мешают.

Я предложил ему обернуть всё это в привычку и дисциплину. Я собрал свою методологию прививания привычек основываясь на:

Ежедневно он тратил на Литкод 15–20 минут. Не более. Иногда участвовал в турнирах, которые и зафиксировали результат в топ 4%.

Читать далее
Всего голосов 70: ↑29 и ↓41-4
Комментарии64

Go напишем шахматный сервер? Часть первая — Введение и пока ни слова про Golang

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.1K

Сегодня мы порассуждаем об одной из самых древних и знаменитых настолок — шахматах. Что вообще нужно для комфортной игры двух человек по сети?

База данных, где будет храниться информация об играх? Удобный и понятный интерфейс? Движок, подсказывающий возможные ходы? Прежде чем хвататься за код, нужно понять, что (кроме возможности играть на расстоянии в тысячи километров) может дать игрокам вычислительная техника оснащённая соответствующим софтом.

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

Предлагаю с этого и начать.

Давайте порассуждаем
Всего голосов 13: ↑11 и ↓2+14
Комментарии8

Ходить как человек: генеративный ИИ и локомоция

Время на прочтение11 мин
Количество просмотров1K


Глядя на улицы города утром буднего дня, мы видим множество людей, каждый из которых торопливо или размеренно идет куда-то по своим делам, будь то на учебу или на работу. Скорость, особенности шага и общая картина локомоции человеческой ходьбы являются уникальными для каждого человека. При этом обстоятельства окружающей среды имеют немалое влияние на то как ходит человек. Говоря о роботах, мы уже давно научили их ходить, подобно человеку. Однако адаптация к динамическим условиям окружающей среды, особенно настройка скорости в реальном времени, остаются крайне сложной задачей. Ученые из Университета Тохоку (Япония) разработали новую методику обучения роботов, использовав возможности генеративного ИИ. Насколько данная методика была эффективной для обучения роботов, и насколько лучше стала их локомоция? Ответы на эти вопросы мы найдем в докладе ученых.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+16
Комментарии0

Тестирование алгоритма деления больших чисел на С++ с использованием Python C API

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.1K

Ранее был предложен некоторый Алгоритм деления 2W-битовых чисел с использованием операций над W-битовыми числами. Для тестирования использовались целые числа языка С++, что не позволяло проверять, например, 128-битные целые числа. Однако, в язык Python встроена поддержка целых чисел неограниченной ширины (Big Integer), а также имеется API для вызова методов Python из программ на языке С/С++. Это позволяет протестировать разные алгоритмы с числами, в том числе деление, используя в качестве результата строковое представление чисел.

В данной статье расписаны шаги для использования Python C API в программе на языке С++, а также показан пример вызова оператора деления двух целых чисел с возвратом результата в виде строки С. Использовалась следующая программная конфигурация:

Читать далее
Всего голосов 5: ↑3 и ↓2+2
Комментарии7

Основы программирования на примере исходного кода MobX

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5K

Изучите ключевые концепции программирования, лежащие в основе популярной JavaScript-библиотеки MobX. Понимание этих концепций поможет вам применить лучшие практики программирования в работе.

Читать далее
Всего голосов 14: ↑4 и ↓10-6
Комментарии0

Как создать свой сборщик проектов

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров4.8K

В данной статье предлагаю рассмотреть историю создания мной сборщика Java проектов под названием Conveyor (https://github.com/maximtereshchenko/conveyor): опыт написания проекта сложности выше средней, различные проблемы, причины принятия технических решений, примеры использования шаблонов проектирования

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

Заставляем ChatGPT быть эгоистичным и решать дилемму заключенного, в которой есть котики

Время на прочтение10 мин
Количество просмотров7.2K

Успехи машинного обучения наталкивают на мысль, что ИИ, стоящий в развитии на пару ступеней выше человека, уже не за горами. Станет он нам новым лучшим другом или скорее чем-то вроде Скайнета? Мы не знаем будущего, но можем проверить, насколько железный мозг дружелюбен в настоящем.

Привет! Мы в Selectel часто используем ИИ и знаем, что это хороший помощник, которому можно доверить часть рутины. А как насчет человеческих качеств? Чтобы выяснить это, сыграем с ним в классическую математическую игру, с помощью которой ученые уже больше 70 лет исследуют альтруизм и эгоизм, способность к эмпатии и готовность предать — характеристики, присущие человеку.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+38
Комментарии61

Решение головоломки из университетского квеста с помощью Python

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров3.1K

«Треки» — это интересная головоломка из университетского квеста. Она представляет собой 2 поля одинакового размера, разделенные на клетки. Для ее решения сначала необходимо найти путь с ограничениями для верхнего поля. После этого требуется с помощью данного пути извлечь сообщение из нижнего поля. Наконец, это сообщение необходимо правильно интерпретировать, чтобы определить музыкальное произведение, на которое оно ссылается. Попробуем решить первые 2 этапа этой головоломки с помощью Python.

Описание головоломки и ее решения.
Всего голосов 5: ↑5 и ↓0+6
Комментарии5

Лучшими кубитами для квантовых вычислений могут быть нейтральные атомы

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров1.3K

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

В конце прошлого года технологический гигант IBM объявил о том, что может показаться важной вехой в квантовых вычислениях: о первом в мире чипе под названием Condor, содержащем более 1000 квантовых битов или кубитов. Прошло всего два года после того, как компания представила Eagle, первый чип с более чем 100 кубитами. Казалось, что эта область стремительно движется вперёд. Создание квантовых компьютеров, способных решать полезные задачи за рамками даже самых мощных классических суперкомпьютеров, требует ещё большего их масштабирования — возможно, до многих десятков или сотен тысяч кубитов. Но это ведь всего лишь вопрос техники, верно?

Читать далее
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Искусственный интеллект. Ч2

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2.4K

Анекдот из журнала. Один мужчина купил дом c искусственным интеллектом. Уже через неделю умный дом называл его лентяем, а через месяц мужчина сам мыл посуду и стирал носки, после чего ему включался футбол.

Понятия Естественный интеллект и Искусственный интеллект (ЕИ, ИИ от лат. intellectus - познание - понимание, рассудок), способность мышления, рационального познания, у человека – ЕИ, у робота – ИИ. ИИ можно определить как область компьютерной науки, занимающуюся автоматизацией разумного поведения неживых объектов. Здесь не будем оценивать и анализировать многочисленные другие определения ИИ и заострять внимание на предлагаемых разными авторами текстах, чтобы не застрять на этом. Понимание ИИ как системы, способной решать задачи доступные в прошлом только человеку, без всяких упоминаний эмуляции сознания, — также используется. И современные системы ИИ вполне этому определению отвечают.     

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

Цель публикации в первую очередь образовательная, познавательная, популяризация науки, а также стремление привлечь в ряды исследователей, в науку приток новых молодых умов, вызвать в таких умах стремление к поиску ответов на возникающие вопросы.  Масштабность темы требует ввести разумные ограничения на излагаемый материал после краткого панорамного её рассмотрения.              

Читать далее
Всего голосов 10: ↑2 и ↓8-6
Комментарии1

Максимизация коэффициента однозначности. Маршрутизация на объектах с непрямым управлением и вложенной структурой

Время на прочтение7 мин
Количество просмотров864

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

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

Откуда Deezer знает, какая музыка нравится новым пользователям?

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров2.9K

Привет, Хабр! Меня зовут Данил Картушов. 👋

В этом посте я расскажу, как музыкальная платформа Deezer, используя метаданные, с первых секунд научилась рекомендовать персонализированные треки новым пользователям!

▶️ Начнем!
Всего голосов 7: ↑4 и ↓3+2
Комментарии8

Как начать мыслить о ИИ

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.2K

В этой статье я расскажу о своем представлении того, с чего можно начать мыслить о создании искусственного интеллекта (ИИ, цифрового интеллекта, ЦИ), даже если он будет очень простым. Здесь я привожу несколько идей, которые должны показать, как можно мыслить о ИИ по-другому, с точки зрения того, какими основными свойствами должна обладать интеллектуальная программа и с чего можно начать мыслить в направлении создания ИИ.

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

Точное увеличение растровых изображений

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.6K

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

Увеличим апскейл до максимума!
Всего голосов 13: ↑12 и ↓1+16
Комментарии40

Быстрое нахождение чисел Фибоначчи

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров8.9K

Описание способа нахождения значения произвольного элемента последовательности Фибоначчи за логарифмическое время.

Читать далее
Всего голосов 25: ↑23 и ↓2+30
Комментарии20

Основы программирования на примере исходного кода React

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров9.3K

Изучите ключевые концепции программирования, лежащие в основе популярной JavaScript-библиотеки React. Понимание этих концепций поможет вам применить лучшие практики программирования в работе.

Читать далее
Всего голосов 7: ↑6 и ↓1+9
Комментарии2
1
23 ...

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