Мы знаем, что f - это многочлен с неотрицательными целыми коэффициентами.
Даны f (1) и f (1 + f (1)) возвращают f . Вы можете вывести f в виде списка коэффициентов, полинома в формате ASCII или аналогичного.
Примеры:
f(1) f(1+f(1)) f
0 0 0
1 1 1
5 75 2x^2 + 3
30 3904800 4x^4 + 7x^3 + 2x^2 + 8x + 9
1 1073741824 x^30
f(1)
иf(1+f(1))
?Ответы:
Желе , 3 байта
Попробуйте онлайн!
Возвращает полином в виде списка коэффициентов.
Поскольку мы знаем, что многочлен имеет неотрицательные целочисленные коэффициенты, f (b) может быть интерпретирована как «коэффициенты многочлена, взятые как цифры основания b », по определению основания. Это зависит от условия, что ни один из коэффициентов не превышает или равен b , но мы знаем это, потому что b на единицу больше, чем сумма коэффициентов (которая равна f (1) ).
Программа просто увеличивает первый аргумент (
‘
), чтобы получить 1 + f (1) , затем вызывает базовый атом преобразования (b
) с первым аргументом в качестве базового и вторым аргументом в качестве числа (используя,@
чтобы поменять местами порядок аргументов, такb
как обычно занимает номер первое и базовое второе).Это был довольно умный вызов; спасибо orlp!
источник
Mathematica,
2928 байтСпасибо JungHwan Min за сохранение 1 байта! (как ни странно, с собой
Max
)Чистая функция, принимающая два неотрицательных целых числа и возвращающая список (неотрицательных целых) коэффициентов.
#2~IntegerDigits~(#+1)
будет такой же алгоритм, как в ответе желе Doorknob's ; к сожалению,IntegerDigits
удары Mathematica, когда основание равно 1, отсюда и необходимость в дополнительных байтахMax[...,2]
.источник
Python 2 , 38 байт
Попробуйте онлайн!
выводит новые символы
Пример вывода для
30, 3904800
:=>
9*x^0 + 8*x^1 + 2*x^2 + 7*x^3 + 4*x^4
источник
VBA, 75 байт
Когда он автоматически форматируется, это выглядит так:
\
Оператор пол разделяйисточник
AHK , 63 байта
AutoHotkey назначает номера 1-n в качестве имен переменных для входящих параметров. Это вызывает некоторые проблемы, когда вы пытаетесь использовать их в функциях, потому что думает, что вы имеете в виду буквальное число 1 вместо переменной с именем 1. Лучший обходной путь, который я могу найти, - это назначить их различным переменным.
источник
Java, 53 байта
Выводит список коэффициентов. Спасибо ovs за математику.
Выражение должно быть присвоено a
Function<Integer, IntConsumer>
и вызвано сначала сapply
помощью функции, затемaccept
с помощьюint
. Нет необходимости в импорте с Java 9jshell
:источник
Common Lisp, 87 байт
Ungolfed:
источник
C #, 62 байта
источник