Учитывая, что все рациональные числа – это все дроби с целым числителем и натуральным знаменателем, и что ниже для всех целых решение уже нашлось, все рациональные тоже могут и найтись… было бы весело.
Ну, раз пошла такая пьянка – остаётся вспомнить про функцию sign и закрыть проблему. С её помощью двойка получается из любых двух первых цифр ( либо для ).
Единица, нужная для , получается из любых оставшихся цифр (как минимум две) перемножением , если нулей нет, либо суммой двух произведений, в одном из которых нуль есть. Если остались одни нули – пользуемся тем, что 0! = 1.
Теперь решение распространяется на решительно все последующие годы.
Угу, не ошибся. Сижу, любуюсь. OLS однозначный победитель. Красиво и в общем виде. Для всех целых сразу. Для всех отрицательных, очевидно, достаточно убрать минус. Решение – пушка.
Лишнее е – это не цифра. Буковки логарифма иначе тоже «лишние», и плохо въезжают в авторское «знаки и скобки». Если же проблема именно в константе – да пожалуйста:
Потому что радикал можно использовать без явного указания степени. Я честно расставил только значки, не прибегая к цифрам. Задача-то на перебор на синтаксическом уровне, семантику не затрагивает. Есть унарная операция sqrt? Отлично, берём.
А если уж решать совсем в кругу программистов, то можно и до читерства с побитовыми операциями дойти. В постановке задачи, к сожалению, не прозвучал конкретный, исчерпывающий базис допустимых операций. В результате можно спорить о допустимости радикалов, о том, общепринято ли ~ в качестве bitwise not, и так далее.
Первый Last Exile («нечто», пожалуй, стоит назвать стимпанком) смотрел взахлёб и безотрывно.
Второй — онгоингом, и как-то так вышло, что от скуки дропнул серии на третьей…
Не то, чтобы я хотел такого развития событий, конечно.
Вот и получилось решение для всех рациональных чисел. А если с сигнумами – так ещё и не зависящее от года, достаточно, чтобы цифр было более одной.
Да, кстати, множество алгебраических чисел же вроде тоже счётно?)
Единица, нужная для
Теперь решение распространяется на решительно все последующие годы.
… фух…
Не ошибся вроде?
А если уж решать совсем в кругу программистов, то можно и до читерства с побитовыми операциями дойти. В постановке задачи, к сожалению, не прозвучал конкретный, исчерпывающий базис допустимых операций. В результате можно спорить о допустимости радикалов, о том, общепринято ли ~ в качестве bitwise not, и так далее.
Второй — онгоингом, и как-то так вышло, что от скуки дропнул серии на третьей…