Sabemos que f é um polinômio com coeficientes inteiros não negativos.
Dado f (1) e F (1 + f (1)) de retorno f . Você pode gerar f como uma lista de coeficientes, um polinômio no formato ASCII ou semelhante.
Exemplos:
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)
ef(1+f(1))
?Respostas:
Gelatina , 3 bytes
Experimente online!
Retorna o polinômio como uma lista de coeficientes.
Como sabemos que o polinômio possui coeficientes inteiros não negativos, f (b) pode ser interpretado como "os coeficientes do polinômio, tomados como dígitos da base b ", pela definição de uma base. Isso está sujeito à condição de que nenhum dos coeficientes exceda ou seja igual a b , mas sabemos que, porque b é um maior que a soma dos coeficientes (que é f (1) ).
O programa simplesmente incrementa o primeiro argumento (
‘
) para obter 1 + f (1) , depois chama o átomo de conversão base (b
) com o primeiro argumento como base e o segundo argumento como o número (usando@
para trocar a ordem dos argumentos, porqueb
normalmente leva o número primeiro e a base segundo)Esse foi o desafio mais inteligente; obrigado orlp!
fonte
Mathematica,
2928 bytesAgradecemos a JungHwan Min por economizar 1 byte! (ironicamente, com a
Max
)Função pura, recebendo dois números inteiros não negativos e retornando uma lista de coeficientes (número inteiro não negativo).
#2~IntegerDigits~(#+1)
seria o mesmo algoritmo da resposta Jelly da maçaneta da porta ; infelizmente, o MathematicaIntegerDigits
engasga quando a base é igual a 1, daí a necessidade de bytes extrasMax[...,2]
.fonte
Python 2 , 38 bytes
Experimente online!
produz coeficientes separados por nova linha
Exemplo de saída para
30, 3904800
:=>
9*x^0 + 8*x^1 + 2*x^2 + 7*x^3 + 4*x^4
fonte
VBA, 75 bytes
Quando formata automaticamente, fica assim:
O
\
operador é uma divisão de pisofonte
AHK , 63 bytes
A AutoHotkey atribui os números 1-n como nomes de variáveis para os parâmetros recebidos. Isso causa alguns problemas quando você tenta usá-los em funções porque pensa que você quer dizer o número literal 1 em vez da variável denominada 1. A melhor solução alternativa que posso encontrar é atribuí-los a diferentes variáveis.
fonte
Java, 53 bytes
Mostra uma lista de coeficientes. Graças a ovs para a matemática.
A expressão deve ser atribuída a
Function<Integer, IntConsumer>
e chamada primeiroapply
pela função e depoisaccept
porint
. Nenhuma importação é necessária no Java 9jshell
:fonte
Lisp comum, 87 bytes
Ungolfed:
fonte
C #, 62 bytes
fonte