Dados los tres lados de un triángulo, imprime el área de este triángulo.
Casos de prueba:
En: 2,3,4
Fuera: 2.90473750965556
En: 3,4,5
Fuera: 6
Suponga que los tres lados a, b, c siempre 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
Versión de 17 caracteres si la entrada está en i
:4%~%:*/(+/,+/-+:)i
versión original de 23 caracteres: (%:@(+/**/@(+/-+:))%4:)
Toma entrada de pantalla a través de ← ⎕
(×/(+/t÷2)-0,t←⎕)*.5
t=input()
s=a=sum(t)/2.
for x in t:a*=s-x
print a**.5
Entrada: 2,3,4
Salida: 2.90473750966
Mathematica 23
fuente
Sqrt[Tr@#*Times@@(Tr@#-2#)]/4&
(Tr@#Times@@(Tr@#-2#))^.5/4&
, o 27 usando una variablePython 57 bytes
Usando la fórmula de Heron .
Uso de la muestra:
Una variante de 58 bytes:
fuente
*.5
lugar de/2
?a+b+c
es impar, el resultado será erróneo. Esto cambió en Python 3, aunque se supone que la mayoría de las presentaciones de golf son Python 2.7 a menos que se especifique lo contrario (al igual que se supone que las presentaciones de Perl son 5.10+ y no Perl 6).GolfScript, 38 caracteres
Como la pregunta no especificaba lo contrario, elegí trabajar solo en longitudes de enteros. Los lados se deben dar en STDIN separados por espacios.
Ejemplo:
fuente
K, 23
Ejemplo
fuente
APL,
2320 caracteresEjemplo:
fuente
R:
4843 caracteresUsando la fórmula de Heron también pero aprovechando la vectorización de R.
Gracias a @flodel por la idea de los puntos suspensivos.
Uso:
fuente
function(...)prod(sum(...)/2-c(0,...))^.5
. O inclusofunction(x)prod(sum(x)/2-c(0,x))^.5
si llama a su función con un vector.Javascript,
8885No es bueno pero divertido :) También Heron ... Demuestra la falta de resolución de problemas simples en JS lol
Nota : ejecute desde la consola para ver el resultado.
88-> 85: eliminado
a
,b
yc
.fuente
(a=v[0])a
es más largo quev[0]v[0]
.s=(v[0]+v[1]+v[2])/2
con a, b, c = 3,4,5 resultaría en"345"/2=172.5" and not 6. Improved without
a,
b` yc
sin embargo.s=(-v[0]-v[1]-v[2])/2
y cambia el otro-
a+
. Es un número par de términos, por lo que se cancela.Mathematica
2016 o2218 bytesCon 4 bytes guardados por @swish.
Esto devuelve una respuesta exacta:
Ejemplo
Para devolver la respuesta en forma decimal, se requieren dos bytes adicionales.
2.90474
fuente
Area@*SSSTriangle
Haskell: 51 (27) personajes
Una implementación muy directa de la fórmula de Heron. Ejemplo de ejecución:
Tenga en cuenta que acepta cualquier entrada numérica, no solo enteros. Y si la entrada ya está en l, la solución solo debe tener 36 caracteres, y si no estamos interesados en imprimir la respuesta, la solución solo debe tener 30 caracteres. Además, si podemos permitirnos cambiar el formato de entrada, podemos eliminar 3 caracteres más. Entonces, si nuestra entrada se ve como [2,3,4,0.0] y ya está en l, podemos obtener nuestra respuesta solo con:
Ejemplo de ejecución:
fuente
PHP,
7877Uso:
Salida:
2.9047375096556
¿No creo que pueda acortarlo? Todavía soy nuevo en el golf. Alguien hágamelo saber si pasé por alto algo.
Gracias Primo por salvarme 1 byte, jajaja.
fuente
($s-$c[2])
se puede reemplazar$s-=$c[2]
por un byte, pero eso es todo lo que puedo ver.JavaScript (84
86)Otra solución de JavaScript basada en la fórmula de Heron, pero que intenta un enfoque diferente para cargar variables. Debe ejecutarse desde la consola. Cada lado se ingresa en un mensaje separado.
EDITAR : utilice el valor de retorno de
eval
para guardar 2 caracteres. Beats @tomsmeding, ¡wahoo! :)fuente
Excel, 42 bytes
De acuerdo con la fórmula de Heron, álgebra de la escuela secundaria al golf.
Ungolfed / Unalgebra'ed
fuente
Japt ,
171615 bytesPruébalo
Ahorró 2 bytes gracias a que ETH señaló una nueva línea redundante y algunas formas alternativas de reducir la matriz.
fuente
NmnU ×*U q
,NmnU r*U q
,Np0 mnU ×q
Tcl, 74 caracteres.
Pase los lados como argumento.
Para la entrada,
2 3 4
el valor des
es(2+3+4)/2.
como cadena. Doble evaluación FTW.fuente
proc
, se extiende a solo 81 bytes: tio.run/##NYo7CoAwEAV7T/…Julia 0.6.0, 48 bytes
Básicamente la fórmula de la garza:
fuente
TI-BASIC,
1412 bytesPartiendo de una rutina de Fórmula de Heron escrita por Kenneth Hammond (Weregoose) , jugué dos bytes. Tenga en cuenta que TI-BASIC está tokenizado, y cada token, like
Ans
yprod(
, es uno o dos bytes en la memoria de la calculadora.Entrada a través de
Ans
ie en el formulario{a,b,c}:[program name]
.Explicado:
fuente
cc , 34 bytes
Pruébalo en línea!
fuente
C (gcc) , 55 bytes
Pruébalo en línea!
Otra implementación más de la fórmula del héroe.
fuente
fuente
ARBLE , 36 bytes
La fórmula de Heron.
Pruébalo en línea!
fuente
Perl 5
-MList::Util=sum -ap
, 40 bytesPruébalo en línea!
fuente
Stax , 10 bytes
Ejecutar y depurarlo
Opera triples de números de coma flotante. Utiliza la fórmula de Heron
fuente
APL (NARS), 16 caracteres, 32 bytes
Uno tiene que centrar la fórmula de Erone si a, b, c son lados del triángulo
al lenguaje APL ... prueba
fuente