Étant donné les trois côtés d'un triangle, imprimez la zone de ce triangle.
Cas de test:
Dans: 2,3,4
Sortie: 2.90473750965556
Dans: 3,4,5
Sortie: 6
Supposons que les trois côtés a, b, c toujours a> 0, b> 0, c> 0, a + b> c, b + c> a, c + a> b.
(4%~2%:[:*/+/-0,+:)
(4%~2%:[:*/+/-0,+:) 2 3 4
2.90474
(4%~2%:[:*/+/-0,+:) 3,4,5
6
Version 17 caractères si l'entrée est en i
:4%~%:*/(+/,+/-+:)i
version originale de 23 caractères: (%:@(+/**/@(+/-+:))%4:)
t=input()
s=a=sum(t)/2.
for x in t:a*=s-x
print a**.5
Contribution: 2,3,4
Production: 2.90473750966
Mathematica 23
la source
Sqrt[Tr@#*Times@@(Tr@#-2#)]/4&
(Tr@#Times@@(Tr@#-2#))^.5/4&
, ou 27 en utilisant une variablePython 57 octets
Utilisation de la formule de Heron .
Exemple d'utilisation:
Une variante de 58 octets:
la source
*.5
au lieu de/2
?a+b+c
est impair, le résultat sera erroné. Cela a changé en Python 3, bien que la plupart des soumissions de golf soient supposées être Python 2.7 sauf indication contraire (tout comme les soumissions Perl sont supposées être 5.10+, et non Perl 6).GolfScript, 38 caractères
Étant donné que la question ne spécifiait pas autrement, j'ai choisi de travailler uniquement sur des longueurs entières. Les côtés doivent être indiqués sur STDIN séparés par des espaces.
Exemple:
la source
K, 23
Exemple
la source
APL,
2320 caractèresExemple:
la source
R:
4843 caractèresEn utilisant également la formule de Heron mais en profitant de la vectorisation de R.
Merci à @flodel pour l'idée des points de suspension.
Usage:
la source
function(...)prod(sum(...)/2-c(0,...))^.5
. Ou mêmefunction(x)prod(sum(x)/2-c(0,x))^.5
si vous appelez votre fonction avec un vecteur.Javascript,
8885Pas bon mais amusant :) Aussi Heron ... Démontre la non-golfabilité de problèmes simples dans JS lol
Remarque : exécutez à partir de la console pour voir le résultat.
88-> 85: supprimé
a
,b
etc
.la source
(a=v[0])a
est plus long quev[0]v[0]
.s=(v[0]+v[1]+v[2])/2
avec a, b, c = 3,4,5 se traduirait par"345"/2=172.5" and not 6. Improved without
un,
b` etc
cependant.s=(-v[0]-v[1]-v[2])/2
et changez l'autre-
en+
. C'est un nombre pair de termes, donc il s'annule.Mathematica
2016 ou2218 octetsAvec 4 octets enregistrés par @swish.
Cela renvoie une réponse exacte:
Exemple
Pour renvoyer la réponse sous forme décimale, deux octets supplémentaires sont nécessaires.
2.90474
la source
Area@*SSSTriangle
Haskell: 51 (27) caractères
Une mise en œuvre très simple de la formule de Heron. Exemple d'exécution:
Notez qu'il accepte toute entrée numérique, pas seulement les entiers. Et si l'entrée est déjà en l, la solution ne doit comporter que 36 caractères, et si nous ne souhaitons pas imprimer la réponse, la solution ne doit comporter que 30 caractères. De plus, si nous pouvons nous permettre de changer le format d'entrée, nous pouvons supprimer 3 caractères supplémentaires. Donc, si notre entrée ressemble à [2,3,4,0.0] et est déjà dans l, nous pouvons obtenir notre réponse avec seulement:
Exemple d'exécution:
la source
PHP,
7877Utilisation:
Production:
2.9047375096556
Je ne pense pas que je puisse le raccourcir? Je suis encore nouveau au golf. N'importe qui m'a fait savoir si j'avais oublié quelque chose.
Merci Primo de m'avoir sauvé 1 octet, lol.
la source
($s-$c[2])
peut être remplacée par$s-=$c[2]
un octet, mais c'est tout ce que je peux voir.JavaScript (84
86)Une autre solution JavaScript basée sur la formule de Heron, mais essayant une approche différente pour le chargement des variables. Doit être exécuté à partir de la console. Chaque côté est entré dans une invite distincte.
EDIT : Utilisez la valeur de retour de
eval
pour enregistrer 2 caractères. Beats @tomsmeding, wahoo! :)la source
Excel, 42 octets
Basé sur la formule de Heron, l'algèbre du secondaire au golf.
Ungolfed / Unalgebra'ed
la source
Japt ,
171615 octetsEssaye-le
Enregistrement de 2 octets grâce à ETH indiquant une nouvelle ligne redondante et quelques façons alternatives de réduire le tableau.
la source
NmnU ×*U q
,NmnU r*U q
,Np0 mnU ×q
Tcl, 74 caractères.
Passez les côtés en argument.
Pour l'entrée,
2 3 4
la valeur des
est(2+3+4)/2.
sous forme de chaîne. Double évaluation FTW.la source
proc
, il s'étend à seulement 81 octets: tio.run/##NYo7CoAwEAV7T/…Julia 0.6.0, 48 octets
Fondamentalement, la formule de héron:
la source
TI-BASIC,
1412 octetsÀ partir d'une routine de formule Heron écrite par Kenneth Hammond (Weregoose) , j'ai joué deux octets au golf . Notez que TI-BASIC est tokenisé, et chaque token, comme
Ans
etprod(
, est un ou deux octets dans la mémoire de la calculatrice.Entrée via
Ans
ie sous la forme{a,b,c}:[program name]
.Expliqué:
la source
dc , 34 octets
Essayez-le en ligne!
la source
C (gcc) , 55 octets
Essayez-le en ligne!
Encore une autre mise en œuvre de la formule de Hero.
la source
la source
ARBLE , 36 octets
La formule de Heron.
Essayez-le en ligne!
la source
Perl 5
-MList::Util=sum -ap
, 40 octetsEssayez-le en ligne!
la source
Stax , 10 octets
Exécuter et déboguer
Fonctionne en triplets de nombres à virgule flottante. Utilise la formule de Heron
la source
APL (NARS), 16 caractères, 32 octets
Il faut convertir la formule Erone si a, b, c sont les côtés du triangle
au langage APL ... test
la source