Le plus petit code qui donne l'aire entre la courbe p (x) = a 0 + a 1 * x + a 2 * x 2 + ..., la ligne y = 0, la ligne x = 0 et la ligne x = C
(c'est-à-dire quelque chose comme ceci:
)
Vous pouvez supposer que p (x)> = 0 pour x <C (points bonus si votre code fonctionne pour des valeurs négatives de p (x)).
Contribution
C, a 0 , a 1 , ...
Production
un vrai nombre - la zone
Exemple 1:
input: 2, 0, 1
output: 2.0
Examen 2:
input: 3.0, 0, 0.0, 2
output: 18
MISE À JOUR:
- C> 0 est également supposé
- l'aire est comprise entre la courbe, y = 0, x = C et x = 0
- l'entrée peut être une liste de n'importe quelle forme; pas nécessairement séparés par des virgules.
- la sortie peut être un réel de n'importe quelle forme (ainsi, «18» est une sortie valide, tout comme «18 .0»)
Réponses:
Mathematica: 48 caractères
.
la source
Length@#
->Tr[1^#]
. Vous pouvez également omettre@Input[]
et créer une fonction.Python -
7163 caractères:Il s'agit d'une simple intégration d'une fonction polynomiale entre
0
etC
. Et je ne l'ai pas testé, mais je suis sûr que cela fonctionne pour les valeurs négatives.la source
input()
Haskell, 85 caractères
la source
J, 26 caractères
par exemple
la source
d.
étant une conjonction ne rend pas très facile mes compétences novices en J.Rubis, 65 caractères
Le code lit jusqu'à la fin de l'entrée, pas la fin de la ligne. Vous devez donc appuyer sur Ctrl+ Dpour terminer la saisie. (Dirigez l'entrée en utilisant
echo
ou à partir d'un fichier.)la source
c=gets(q=",").to_f
et$<.each(q){|a|s+=a.to_f*c**(i+=1)/i}
, enregistre un caractère ....","
(ou?,
, qui est encore plus courte) à$/
vous permet d'omettre l'argument de$<.each
. Et$<.map
est un caractère plus court que$<.each
. ;)C GCC
186182 octetsCe programme donne une sortie (surface) pour toute courbe entre la courbe, y = 0, x = C et x = 0. Il peut également prendre des coefficients
float
de 0 à 48 . La première entrée acceptée estC
suivie de coefficients. Appuyez surÈnter
après le dernier coefficient.la source