Решение Advent of Code 2024, с использованием SQL

Задача заключается в определении возможности получения заданного числа, применяя к набору чисел операции сложения, умножения и конкатенации. В первой части использована рекурсия и битовые маски для перебора комбинаций операций сложения и умножения, примененных к набору чисел. Вычисляется итоговая сумма целевых чисел, для которых возможно получить результат.
Решение  Advent of Code 2024,  с использованием SQL
Изображение носит иллюстративный характер

Во второй части задачи добавляется оператор конкатенации. Это делает невозможным использование битовых масок. Решение заключается в рекурсивном переборе всех возможных вариантов операций на каждом шаге. Используется «размножение строк» в рекурсии через unnest, при этом вычисления ограничиваются целевым значением, чтобы избежать перебора всех комбинаций.

Ключевым моментом является использование рекурсивных CTE в SQL для перебора возможных комбинаций операторов. LATERAL JOIN позволяет отфильтровывать уравнения, для которых нет решения. WITH ORDINALITY присваивает уникальные номера строкам для их идентификации. Агрегатные функции суммируют целевые числа для верных уравнений.

Использование SQL для решения задачи демонстрирует возможности языка, хотя и не является самым эффективным подходом в сравнении с императивным программированием.


Новое на сайте

20338Что если жрецы майя, вдохновившие Уильяма берроуза, были выдумкой антропологов? 20337Голубые соседи раскрывают тайну красных точек ранней вселенной 20336Осцилляторы против транзисторов: тихая революция в энергетике искусственного интеллекта 20335Гонка за временем: как уязвимость в snap-confine снова открывает root на Ubuntu 20334Почему постановка амбициозных целей пугает нас больше, чем их недостижение? 20333Индонезийская полиция арестовала создателя фишинг-сервиса Kratos, который обходил... 20332Почему настоящая страница входа Microsoft может украсть ваш аккаунт, даже если пароль и... 20329Как обычное расширение для PDF-файлов открыло доступ к чужой переписке в WhatsApp? 20327Кости прерий: как истребление бизонов породило целую индустрию — и сама себя же уничтожила 20326Кто и зачем взламывает серверы Ollama и ComfyUI ради ключей от AWS? 20325Как злоумышленники спрятали командный сервер внутри блокчейна и почему его невозможно... 20324Брюссель заставляет Android делиться секретами с чужими ИИ-помощниками
Ссылка