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

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

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

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

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


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

19770Вечные химикаты: как DuPont отравил планету 19769ДНК раскрыла происхождение человека из испанского мегалита, но его вера так и осталась... 19768Какапо: самый толстый попугай планеты переживает рекордный бэби-бум 19767Docker позволял взломать хост одним большим запросом — и ИИ сам до этого додумался 19766Откуда взялась республиканская партия: революция или консерватизм? 19765ИИ в медицине: когда алгоритм «видит» то, чего нет 19764Почему зрелые системы управления доступом в 2026 году стали опаснее, чем незрелые? 19763Почему пароли до сих пор обходятся бизнесу дороже, чем кажется? 19762Как больше тысячи незащищённых серверов ComfyUI стали фермой для майнинга криптовалют? 19761Почему война Калифорнии со смогом в 1970-х изменила весь автопром? 19760Почему фальшивый «слив» Claude Code оказался ловушкой для сотен разработчиков? 19759Как физики умудрились перевезти антиматерию в обычном грузовике? 19758Атака GPUBreach: как через видеопамять можно получить полный контроль над компьютером 19757Что за ядовито-зелёное пятно на водохранилище в ЮАР видно даже из космоса? 19756Как Storm-1175 из Китая ломает корпоративные сети за сутки и что делает Medusa настолько...
Ссылка