Ssylka

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

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

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

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

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


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

18884Знаете ли вы, что приматы появились до вымирания динозавров, и готовы ли проверить свои... 18883Четыреста колец в туманности эмбрион раскрыли тридцатилетнюю тайну звездной эволюции 18882Телескоп Джеймс Уэбб раскрыл тайны сверхэффективной звездной фабрики стрелец B2 18881Математический анализ истинного количества сквозных отверстий в человеческом теле 18880Почему даже элитные суперраспознаватели проваливают тесты на выявление дипфейков без... 18879Шесть легендарных древних городов и столиц империй, местоположение которых до сих пор... 18878Обзор самых необычных медицинских диагнозов и клинических случаев 2025 года 18877Критическая уязвимость CVE-2025-14847 в MongoDB открывает удаленный доступ к памяти... 18876Научное обоснование классификации солнца как желтого карлика класса G2V 18875Как безграничная преданность горным гориллам привела Дайан Фосси к жестокой гибели? 18874Новый родственник спинозавра из Таиланда меняет представления об эволюции хищников Азии 18873Как новая электрохимическая технология позволяет удвоить добычу водорода и снизить... 18872Могут ли ледяные гиганты Уран и Нептун на самом деле оказаться каменными? 18871Внедрение вредоносного кода в расширение Trust Wallet привело к хищению 7 миллионов... 18870Проверка клинического мышления на основе редких медицинских случаев 2025 года