Dada la ecuación de un polinomio y una coordenada x, encuentre la tasa de cambio del punto en esa coordenada x en la curva.
Un polinomio tiene la forma: ax n + ax n-1 + ... + ax 1 + a, donde a ϵ Q y n ϵ W. Para este desafío, n también puede ser 0 si no quieres tener para tratar casos especiales (constantes) donde no hay x.
Para encontrar la tasa de cambio en esa x-coord, podemos obtener la derivada del polinomio y enchufar la x-coord.
Entrada
El polinomio se puede tomar en cualquier forma razonable, pero debe indicar cuál es ese formato explícitamente. Por ejemplo, una matriz del formulario [..[coefficient, exponent]..]es aceptable.
Salida
La tasa de cambio del punto en la coordenada x dada.
Este es el código de golf , por lo que gana el código más corto en bytes.
Ejemplos
[[4, 3], [-2, 4], [5, 10]] 19 -> 16134384838410
[[0, 4]] 400 -> 0
[[4, 0], [5,1]] -13 -> 5
[[4.14, 4], [48, 2]] -3 -> -735.12
[[1, 3], [-5, 0]] 5.4 -> 87.48

Respuestas:
Mathematica, 6 bytes
(Golpe QUE ,
MATy 05AB1E)El primer argumento debe ser un polinomio, con
#su variable y&al final (es decir, una función pura polinomial; por ejemplo3 #^2 + # - 7 &). El segundo argumento es la coordenada x del punto de interés.Explicación
Tome la derivada del primer argumento (
1está implícito).Conecta el segundo argumento.
Uso
fuente
MATL ,
86 bytesLa entrada es: matriz de exponentes, número, matriz de coeficientes.
Pruébalo en línea! O verifique todos los casos de prueba: 1 , 2 3 , 4 , 5 .
Explicación
Considere entradas ejemplo
[3 4 10],19,[4 -2 5].fuente
Julia,
45424037 bytesEsta es una función que acepta un vector de tuplas y un número y devuelve un número. El valor absoluto es asegurar que el exponente no sea negativo, lo cual es necesario porque Julia molesta arroja un
DomainErroral elevar un entero a un exponente negativo.Pruébalo en línea! (incluye todos los casos de prueba)
Gracias a Glen O por un par de correcciones y bytes.
fuente
i[2]>0&¶ tratar el caso constante, lo usaabs(i[2]-1)en el exponente dex. Y enp%xlugar de usar un truco un poco menos limpio para guardar otros tres bytes, tenga enf(p,x)cuenta que puede llamarlo como%(p,x)si quisiera usarlo en forma de función ... desafortunadamente, parece que no funciona en TIO (que aparentemente está ejecutando Julia 0.4.6), aunque funciona en mi Julia 0.5.0.absparte, pero redefinir físicamente a los operadores infijos me duele ...05AB1E ,
1211 bytesSalvó un byte gracias a Adnan.
Pruébalo en línea!
La precisión de coma flotante es la de Python. Actualmente cambio los valores de la pila dos veces, tal vez hay una manera de evitarlo y guardar algunos bytes.
fuente
}:).DIs<m**Oes de 8 bytes, siguiendo la respuesta MATL que proporcionó @Luis Mendo.s¹<m**Oes de 7 bytes. ( 05ab1e.tryitonline.net/… )Python 3, 41 bytes
¡6 bytes eliminados gracias a @AndrasDeak ! De hecho, esta respuesta ahora es más suya que mía ...
¡Gracias también a @ 1Darco1 por dos correcciones!
Función anónima que acepta una lista de listas con coeficientes y exponentes (el mismo formato que se describe en el desafío) y un número.
Pruébalo aquí .
fuente
a*x**(b-1)lugar dea*b*x**(b-1)? Y además, ¿qué pasa si $ x = 0 $?R, 31 bytes
Función anónima que toma un vector de coeficientes
a, un vector de exponentesny unxvalor.fuente
Matlab, 27 bytes
Esta es una función anónima que acepta un valor
xy un polonmialpen forma de una lista de coeficientes, por ejemplo,x^2 + 2se puede representar como[1,0,2].fuente
JavaScript (ES7), 40 bytes
aes una matriz de los coeficientes en orden de exponente ascendente con ceros incluidos, por ejemplo, x ³-5 estaría representado por[-5, 0, 0, 1].fuente
MATLAB con Symbolic Math Toolbox, 26 bytes
Esto define una función anónima. Las entradas son:
pdefine el polinomio, en el formato'4*x^3-2*x^4+5*x^10'xEjemplo de uso:
fuente
@(x,p)polyval(polyder(p),x)para ganar un byte.R,
3127 bytesFunción sin nombre que toma dos entradas
pyx.pse supone que es una expresión R del polinomio (ver ejemplo a continuación) yxes simplemente el punto de evaluación.Funciona llamando al
Dque calcula la derivada simbólica wrtxy evalúa la expresión enx.Salida de ejemplo
Suponiendo que la función ahora se llama,
fse puede llamar de la siguiente manera:que produce respectivamente:
fuente
PARI / GP , 20 bytes
Por ejemplo,
a(4*x^3-2*x^4+5*x^10,19)rendimientos16134384838410.fuente
f'def, y después sustituyenporx.C ++ 14,
165138133112110 bytesEl genérico Variadic Lambda ahorra mucho. -2 bytes para
#importy eliminando el espacio antes<Sin golf:
Uso:
fuente
Haskell, 33 bytes
Uso:
fuente
dc, 31 bytes
Uso:
fuente
DASH , 33 bytes
Uso:
Explicación
fuente
Scala, 46 bytes
Uso:
Explicación:
fuente
Axioma 31 bytes
resultados
fuente
Python 2, 39 bytes
lambdaLa función toma dos entradas,pyx.pes el polinomio, dado en el formato de ejemplo dado en la pregunta.xes el valor de x para encontrar la tasa de cambio.fuente
Pari / GP , 14 bytes
Uso:
Pruébalo en línea!
fuente
C, 78 bytes
fuente
Clojure, 53 bytes
El polinomio se expresa como un mapa hash, las claves son coeficientes y los valores son exponentes.
fuente
Casio Basic, 16 bytes
La entrada debe ser el polinomio en términos de
x. 13 bytes para el código, +3 bytes para ingresara,bcomo parámetros.Simplemente deriva la expresión
acon respecto ax, luego suscribe enx=b.fuente
Dyalog APL,
262523 bytesToma el polinomio como argumento derecho y el valor como argumento izquierdo.
fuente