Итак, знакомьтесь — Амит Патель (Amit Patel) и его интерактивные статьи на стыке математики, алгоритмов и программирования. Небольшой дисклаймер: поскольку я не могу встроить интерактивные иллюстрации на Хабр, то буду использовать анимированные gif. Некоторые из них могут быть тяжелые.Читать полностью »
Рубрика «Алгоритмы» - 8
Интерактивные книги 2: на этот раз про геймдизайн и алгоритмы
2023-05-03 в 8:01, admin, рубрики: Amit Patel, java, timeweb_статьи, vue.js, Алгоритмы, Блог компании Timeweb Cloud, геймдизайн, интерактивные книги, Программирование, разработка игр, Читальный залУскоряем приложение: никаких фреймворков — только математика
2023-05-02 в 11:46, admin, рубрики: highload, Алгоритмы, Блог компании Конференции Олега Бунина (Онтико), Блог компании Почтатех, высокая производительность, высоконагруженные приложения, Микросервисная архитектура, микросервисы, оптимизация запросовПредставьте, что вам нужно ускорить работу огромной легаси-системы с 50 микросервисами, нагрузка на которую выросла в 2000 раз. При этом она обрабатывает затратные по времени операции, которые зависят друг от друга в плане данных.
Вычислительная сложность некоторых игр и головоломок
2023-05-02 в 8:03, admin, рубрики: Алгоритмы, Блог компании FirstVDS, головоломки, игры, логические игры, математика, сложность игр, шахматы, шашкиЕсть несколько причин смотреть на игры как на нечто большее, чем просто на развлечения. Как станет яснее по ходу дела, многие игры основаны на сложных вычислительных задачах, хотя зачастую и с более низким «входным барьером», поскольку они редко требуют наличия формального образования.
Красивый двоичный поиск без ветвления
2023-05-02 в 6:41, admin, рубрики: binary search, алгоритм Шора, Алгоритмы, двоичный поиск, дональд кнут, ПрограммированиеНедавно я прочитал пост Алекса Мускара Beautiful Binary Search in D. В нём описывается алгоритм двоичного поиска под названием «алгоритм Шора». Я никогда не слышал о нём и его невозможно загуглить, но увидев алгоритм, я думал только об одном: «он без ветвления». Кто знал, что может существовать двоичный поиск без ветвления? Поэтому я занялся его трансляцией в алгоритм для итераторов C++, не требующий индексации на основе единицы или массивов фиксированного размера.
В GCC он более чем в два раза быстрее, чем std::lower_bound, который сам по себе — очень высококачественный двоичный поиск. Цикл поиска прост, а генерируемый ассемблерный код красив. Меня потрясло, что он существует, но им, похоже, никто не пользуется.
Читать полностью »
Алгоритмы балансировки нагрузок
2023-05-01 в 13:25, admin, рубрики: ruvds_перевод, Алгоритмы, балансировка нагрузки, балансировщик нагрузки, Блог компании RUVDS.com, веб-серверы, оптимизация запросов, Серверная оптимизация, Серверное администрированиеРано или поздно веб-приложения перерастают среду одного сервера. Компаниям требуется увеличить или их доступность, или масштабируемость, или и то, и другое. Чтобы сделать это, они развёртывают своё приложение на нескольких серверах и ставят перед ним балансировщик нагрузок для распределения входящих запросов. Чтобы справляться с нагрузками, большим компаниям могут потребоваться тысячи серверов, на которых запущено веб-приложение.
В этом посте мы рассмотрим способы, которыми один балансировщик нагрузок может распределять HTTP-запросы на множество серверов. Мы начнём снизу и проделаем весь путь вверх до современных алгоритмов балансировки нагрузок.
Читать полностью »
Ответом на задачу по упаковке цветов в бесконечной сетке оказалось число 15
2023-04-28 в 13:00, admin, рубрики: infinite grid, ruvds_перевод, Алгоритмы, алгоритмы поиска, бесконечная сетка, Блог компании RUVDS.com, графы, комбинаторика, математикаВ задаче по «упаковке цветов графа» (в оригинале packing coloring, — прим. пер.) спрашивается, сколько чисел необходимо для заполнения бесконечной сетки так, чтобы идентичные числа никогда не оказывались слишком близко друг к другу. И новый арифметический эксперимент с использованием компьютера даёт на удивление простой ответ.
Сколько чисел потребуется для заполнения бесконечной сетки так, чтобы расстояние между вхождениями одного числа было больше самого этого числа?Читать полностью »
Простая процедурная генерация мира, или Шумы Перлина на Python
2023-04-25 в 11:54, admin, рубрики: minecraft, perlin noise, selectel, Алгоритмы, Блог компании Selectel, графика, Дизайн игр, майнкрафт, процедурная генерация, Работа с 3D-графикой, разработка игр, шум перлинаНедавно я выпустил статью, в которой рассказал о библиотеке Ursina Engine и показал, как создать свою трехмерную игру на Python. Между разделами вскользь упомянул про шум Перлина. Это один из базовых алгоритмов процедурной генерации, который можно использовать для создания красивых игровых миров. Хочу рассказать о нем подробнее и показать, как работать с модулем perlin-noise.
Если вам интересно, как просто генерировать реалистичные трехмерные ландшафты на Python, добро пожаловать под кат!
Читать полностью »
Очередной драйвер SPI флэшек… Но уже с кэшем и «нормальным» api
2023-04-23 в 10:18, admin, рубрики: C, Алгоритмы, Драйвер, кэширование данных, ни кто не читает тэги, оптимизации, программирование микроконтроллеров, Электроника для начинающихПрочитал на хабре кучу простых, и даже очень, статеек на тему программирования микроконтроллеров, тоже решил добавить что-то простое, понятное, но чуть более полезное.
Да простят меня бывалые разработчики за сей труд, да и хейтеры пусть прощают тоже😁
О чём пойдет речь
Будем размышлять и пытаться писать быстрый драйвер флешки и при этом попробуем сэкономить её ресурс при перезаписях.
Предыстория и проблемы возможных реализаций
Понадобилась SPI флэшка для хранения данных, которыми оперирует встраиваемое ПО микроконтроллера. Типовая задача, если не хватает места внутри основного чипа.
Выступай! Или секреты захватывающей презентации
2023-04-10 в 11:09, admin, рубрики: kandinsky art, Алгоритмы, выступления, конференции, конференция, Презентации, публичное выступление, страх, Управление продуктомРано или поздно многие ITшники сталкиваются с новым для себя вызовом. Оказывается, недостаточно просто создать продукт или работать в какой-то фирме. Иногда продукт или фирму надо еще презентовать. На разных конференциях, выставках и прочих мероприятиях с большим числом любопытных глаз. И вот тут многие вспоминают, что они вообще-то интроверты и такое не про них. Ну а если надо?
Как написание кода с помощью машинного обучения всё (не)изменит
2023-04-05 в 8:35, admin, рубрики: Алгоритмы, искусственный интеллект, Исследования и прогнозы в IT, машинное обучение, никто не читает тэги, Программирование, шок срочно в номерАстрологи объявили неделю (месяц?, год?) кухонной аналитики по AI и ML на Хабре. Настало время для этой статьи, которую я писал два года назад. И вот что удивительно — она должна была устареть, однако не устарела.
Основной урок истории заключается в том, что уроками истории, как правило, пренебрегают. Этот афоризм описывает в первую очередь политику, но вполне неплохо применим и к технологиям.
Есть много технологий, поменявших мир, но поменяли они его не за счёт более быстрых лошадей, как говорил известный инноватор Форд. Новая страница истории начинается, когда технологии начинают решать задачу новым способом. Порой даже полностью изменяя её, как это было с лошадьми и автомобилями.
Так что же такого революционного дали нам нейросети применительно к программированию?
Читать полностью »