Sabemos que f es un polinomio con coeficientes enteros no negativos.
Dada f (1) y f (1 + f (1)) de retorno f . Puede generar f como una lista de coeficientes, un polinomio con formato ASCII o similar.
Ejemplos:
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)
yf(1+f(1))
?Respuestas:
Jalea , 3 bytes
Pruébalo en línea!
Devuelve el polinomio como una lista de coeficientes.
Como sabemos que el polinomio tiene coeficientes enteros no negativos, f (b) puede interpretarse como "los coeficientes del polinomio, tomados como dígitos de base b ", por la definición de una base. Esto está sujeto a la condición de que ninguno de los coeficientes exceda o sea igual a b , pero lo sabemos, porque b es uno mayor que la suma de los coeficientes (que es f (1) ).
El programa simplemente incrementa el primer argumento (
‘
) para obtener 1 + f (1) , luego llama al átomo de conversión de base (b
) con el primer argumento como base y el segundo argumento como número (usando@
para intercambiar el orden de los argumentos, ya queb
generalmente toma el número primero y la segunda base).Este fue un desafío bastante inteligente; gracias orlp!
fuente
Mathematica,
2928 bytes¡Gracias a JungHwan Min por guardar 1 byte! (irónicamente, con a
Max
)Función pura que toma dos enteros no negativos y devuelve una lista de coeficientes (enteros no negativos).
#2~IntegerDigits~(#+1)
sería el mismo algoritmo que en la respuesta Jelly de Doorknob ; desafortunadamente, Mathematica seIntegerDigits
ahoga cuando la base es igual a 1, de ahí la necesidad de bytes adicionalesMax[...,2]
.fuente
Python 2 , 38 bytes
Pruébalo en línea!
produce coeficientes separados por nueva línea
Ejemplo de salida para
30, 3904800
:=>
9*x^0 + 8*x^1 + 2*x^2 + 7*x^3 + 4*x^4
fuente
VBA, 75 bytes
Cuando se formatea automáticamente, se ve así:
El
\
operador es una división de pisofuente
AHK , 63 bytes
AutoHotkey asigna los números 1-n como nombres de variables para los parámetros entrantes. Causa algunos problemas cuando intenta usarlos en funciones porque cree que se refiere al número literal 1 en lugar de la variable llamada 1. La mejor solución que puedo encontrar es asignarlos a diferentes variables.
fuente
Java, 53 bytes
Emite una lista de coeficientes. Gracias a los ovs por las matemáticas.
La expresión debe asignarse a a
Function<Integer, IntConsumer>
y llamarse primeroapply
con la función, luegoaccept
con elint
. No se necesitan importaciones con Java 9jshell
:fuente
Lisp común, 87 bytes
Sin golf:
fuente
C #, 62 bytes
fuente