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 (
1
está 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
DomainError
al 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&&
para tratar el caso constante, lo usaabs(i[2]-1)
en el exponente dex
. Y enp%x
lugar 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.abs
parte, 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**O
es de 8 bytes, siguiendo la respuesta MATL que proporcionó @Luis Mendo.s¹<m**O
es 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 exponentesn
y unx
valor.fuente
Matlab, 27 bytes
Esta es una función anónima que acepta un valor
x
y un polonmialp
en forma de una lista de coeficientes, por ejemplo,x^2 + 2
se puede representar como[1,0,2]
.fuente
JavaScript (ES7), 40 bytes
a
es 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:
p
define el polinomio, en el formato'4*x^3-2*x^4+5*x^10'
x
Ejemplo de uso:
fuente
@(x,p)polyval(polyder(p),x)
para ganar un byte.R,
3127 bytesFunción sin nombre que toma dos entradas
p
yx
.p
se supone que es una expresión R del polinomio (ver ejemplo a continuación) yx
es simplemente el punto de evaluación.Funciona llamando al
D
que calcula la derivada simbólica wrtx
y evalúa la expresión enx
.Salida de ejemplo
Suponiendo que la función ahora se llama,
f
se 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 sustituyen
porx
.C ++ 14,
165138133112110 bytesEl genérico Variadic Lambda ahorra mucho. -2 bytes para
#import
y 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
lambda
La función toma dos entradas,p
yx
.p
es el polinomio, dado en el formato de ejemplo dado en la pregunta.x
es 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,b
como parámetros.Simplemente deriva la expresión
a
con respecto ax
, luego suscribe enx=b
.fuente
Dyalog APL,
262523 bytesToma el polinomio como argumento derecho y el valor como argumento izquierdo.
fuente