Étant donné l'équation d'un polynôme et d'une coordonnée x, trouver le taux de changement du point à cette coordonnée x sur la courbe.
Un polynôme se présente sous la forme: ax n + ax n-1 + ... + ax 1 + a, où a ϵ Q et n ϵ W. Pour ce défi, n peut aussi être 0 si vous ne voulez pas avoir pour traiter des cas particuliers (constantes) où il n'y a pas de x.
Pour trouver le taux de changement à cette coordonnée x, nous pouvons obtenir la dérivée du polynôme et brancher la coordonnée x.
Contribution
Le polynôme peut être pris sous toute forme raisonnable, mais vous devez indiquer explicitement ce format. Par exemple, un tableau du formulaire [..[coefficient, exponent]..]
est acceptable.
Production
Le taux de changement du point à la coordonnée x donnée.
C'est le code-golf , donc le code le plus court en octets l'emporte.
Exemples
[[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
Réponses:
Mathematica, 6 octets
(Beat THAT ,
MATLet 05AB1E)Le premier argument doit être un polynôme, avec
#
comme variable et avec&
à la fin (c'est-à-dire un polynôme à fonction pure; par exemple3 #^2 + # - 7 &
). Le deuxième argument est la coordonnée x du point d'intérêt.Explication
Prenez la dérivée du premier argument (
1
est implicite).Branchez le deuxième argument.
Usage
la source
MATL ,
86 octetsL'entrée est: tableau d'exposants, nombre, tableau de coefficients.
Essayez-le en ligne! Ou vérifiez tous les cas de test: 1 , 2 3 , 4 , 5 .
Explication
Tenez compte des entrées par exemple
[3 4 10]
,19
,[4 -2 5]
.la source
Julia,
45424037 octetsIl s'agit d'une fonction qui accepte un vecteur de tuples et un nombre et renvoie un nombre. La valeur absolue est de s'assurer que l'exposant n'est pas négatif, ce qui est nécessaire car Julia gênant lance un
DomainError
en élevant un entier à un exposant négatif.Essayez-le en ligne! (inclut tous les cas de test)
Merci à Glen O pour quelques corrections et octets.
la source
i[2]>0&&
pour traiter le cas constant, vous utilisezabs(i[2]-1)
dans l'exposant dex
. Et une astuce un peu moins propre pour économiser trois autres octets est d'utiliserp%x
au lieu def(p,x)
- notez que vous pouvez l'appeler comme%(p,x)
si vous vouliez l'utiliser sous forme de fonction ... malheureusement, il semble que cela ne fonctionne pas sur TIO (qui apparemment exécute Julia 0.4.6), bien que cela fonctionne sur mon Julia 0.5.0.abs
partie, mais redéfinir les opérateurs d'infixe me fait physiquement mal ...05AB1E ,
1211 octetsUn octet enregistré grâce à Adnan.
Essayez-le en ligne!
La précision en virgule flottante est celle de Python. J'échange actuellement les valeurs de la pile deux fois, il y a peut-être un moyen de l'éviter et d'économiser quelques octets.
la source
}
:).DIs<m**O
est de 8 octets, suite à la réponse MATL fournie par @Luis Mendo.s¹<m**O
c'est 7 octets. ( 05ab1e.tryitonline.net/… )Python 3, 41 octets
6 octets supprimés grâce à @AndrasDeak ! En fait, cette réponse est désormais plus la sienne que la mienne ...
Merci également à @ 1Darco1 pour deux corrections!
Fonction anonyme qui accepte une liste de listes avec des coefficients et des exposants (même format que celui décrit dans le défi) et un nombre.
Essayez-le ici .
la source
a*x**(b-1)
au lieu dea*b*x**(b-1)
? Et de plus, que se passe-t-il si $ x = 0 $?R, 31 octets
Fonction anonyme qui prend un vecteur de coefficients
a
, un vecteur d'exposantsn
et unex
valeur.la source
Matlab, 27 octets
Il s'agit d'une fonction anonyme qui accepte une valeur
x
et un polyonmialp
sous la forme d'une liste de coefficients, par exemplex^2 + 2
peut être représenté par[1,0,2]
.la source
JavaScript (ES7), 40 octets
a
est un tableau des coefficients dans l'ordre des exposants ascendants avec des zéros inclus, par exemple x ³-5 serait représenté par[-5, 0, 0, 1]
.la source
MATLAB avec Symbolic Math Toolbox, 26 octets
Cela définit une fonction anonyme. Les entrées sont:
p
définissant le polynôme, au format'4*x^3-2*x^4+5*x^10'
x
Exemple d'utilisation:
la source
@(x,p)polyval(polyder(p),x)
pour gagner un octet.R,
3127 octetsFonction sans nom prenant deux entrées
p
etx
.p
est supposé être une expression R du polynôme (voir l'exemple ci-dessous) etx
est simplement le point d'évaluation.Il fonctionne en appelant le
D
qui calcule la dérivée symbolique wrtx
et évalue l'expression àx
.Exemple de sortie
En supposant que la fonction est désormais nommée,
f
elle peut être appelée de la manière suivante:qui produit respectivement:
la source
PARI / GP , 20 octets
Par exemple, les
a(4*x^3-2*x^4+5*x^10,19)
rendements16134384838410
.la source
f'
def
, et se substitue alorsn
àx
.C ++ 14,
165138133 133112110 octetsGeneric Variadic Lambda économise beaucoup. -2 octets pour
#import
et supprimer l'espace avant<
Non golfé:
Usage:
la source
Haskell, 33 octets
Usage:
la source
dc, 31 octets
Usage:
la source
DASH , 33 octets
Usage:
Explication
la source
Scala, 46 octets
Usage:
Explication:
la source
Axiome 31 octets
résultats
la source
Python 2, 39 octets
lambda
la fonction prend deux entrées,p
etx
.p
est le polynôme, donné dans le format d'exemple donné dans la question.x
est la valeur x à laquelle trouver le taux de variation.la source
Pari / GP , 14 octets
Usage:
Essayez-le en ligne!
la source
C, 78 octets
la source
Clojure, 53 octets
Le polynôme est exprimé comme une carte de hachage, les clés étant des coefficients et les valeurs sont des exposants.
la source
Casio Basic, 16 octets
L'entrée doit être le polynôme en termes de
x
. 13 octets pour le code, +3 octets à saisira,b
comme paramètres.Dérive simplement l'expression
a
par rapport àx
, puis s'abaissex=b
.la source
Dyalog APL,
262523 octetsPrend le polynôme comme argument de droite et la valeur comme argument de gauche.
la source