Bei drei Seiten eines Dreiecks wird der Bereich dieses Dreiecks gedruckt.
Testfälle:
In: 2,3,4
Out: 2.90473750965556
In: 3,4,5
Aus: 6
Angenommen, die drei Seiten a, b, c sind immer 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
17-Zeichen-Version bei Eingabe in i
:4%~%:*/(+/,+/-+:)i
Originalversion mit 23 Zeichen: (%:@(+/**/@(+/-+:))%4:)
t=input()
s=a=sum(t)/2.
for x in t:a*=s-x
print a**.5
Eingang: 2,3,4
Ausgabe: 2.90473750966
Mathematica 23
quelle
Sqrt[Tr@#*Times@@(Tr@#-2#)]/4&
(Tr@#Times@@(Tr@#-2#))^.5/4&
oder 27 unter Verwendung einer VariablenPython 57 Bytes
Mit Herons Formel .
Beispielnutzung:
Eine 58-Byte-Variante:
quelle
*.5
anstelle von/2
?a+b+c
ungerade ist, ist das Ergebnis fehlerhaft. Dies hat sich in Python 3 geändert, obwohl angenommen wird, dass die meisten Golf-Einsendungen Python 2.7 sind, sofern nicht anders angegeben (genau wie bei Perl-Einsendungen 5.10+ und nicht Perl 6).GolfScript, 38 Zeichen
Da die Frage nicht anders spezifiziert wurde, habe ich mich entschieden, nur mit ganzzahligen Längen zu arbeiten. Seiten müssen auf STDIN durch Leerzeichen getrennt angegeben werden.
Beispiel:
quelle
K, 23
Beispiel
quelle
APL,
2320 ZeichenBeispiel:
quelle
R:
4843 ZeichenVerwenden Sie auch die Formel von Heron, aber nutzen Sie die Vektorisierung von R.
Vielen Dank an @flodel für die Idee der Ellipse.
Verwendung:
quelle
function(...)prod(sum(...)/2-c(0,...))^.5
. Oder auchfunction(x)prod(sum(x)/2-c(0,x))^.5
wenn Sie Ihre Funktion mit einem Vektor aufrufen.Javascript,
8885Nicht gut, aber lustig :) Auch Heron ... Demonstriert die Ungolfbarkeit einfacher Probleme in JS lol
Hinweis : Führen Sie von der Konsole aus, um das Ergebnis zu sehen.
88-> 85: Entfernte
a
,b
undc
.quelle
(a=v[0])a
ist länger alsv[0]v[0]
.s=(v[0]+v[1]+v[2])/2
bei a, b, würde c = 3,4,5 zu"345"/2=172.5" and not 6. Improved without
einem,
b` undc
obwohl führen.s=(-v[0]-v[1]-v[2])/2
und ändern Sie die andere-
zu+
. Es ist eine gerade Anzahl von Begriffen, so dass es storniert.Mathematica
2016 oder2218 BytesMit 4 Bytes von @swish gespeichert.
Dies gibt eine genaue Antwort zurück:
Beispiel
Um die Antwort in Dezimalform zurückzugeben, sind zwei zusätzliche Bytes erforderlich.
2.90474
quelle
Area@*SSSTriangle
Haskell: 51 (27) Zeichen
Eine sehr einfache Implementierung der Heron-Formel. Beispiellauf:
Beachten Sie, dass jede numerische Eingabe akzeptiert wird, nicht nur ganze Zahlen. Und wenn die Eingabe bereits in 1 ist, muss die Lösung nur 36 Zeichen lang sein, und wenn wir nicht daran interessiert sind, die Antwort auszudrucken, muss die Lösung nur 30 Zeichen lang sein. Was mehr ist, wenn wir uns erlauben können, das Eingabeformat zu ändern, können wir 3 weitere Zeichen entfernen. Wenn unsere Eingabe also wie [2,3,4,0.0] aussieht und bereits in l ist, können wir unsere Antwort nur mit Folgendem erhalten:
Beispiellauf:
quelle
PHP,
7877Verbrauch:
Ausgabe:
2.9047375096556
Ich glaube nicht, dass ich es kürzer machen kann? Ich bin noch neu im Golfen. Jeder ließ mich wissen, wenn ich etwas übersah.
Danke Primo, dass du mir 1 Byte gespart hast, lol.
quelle
($s-$c[2])
kann durch$s-=$c[2]
ein Byte ersetzt werden, aber das ist alles, was ich sehen kann.JavaScript (84
86)Eine weitere JavaScript-Lösung, die auf der Formel von Heron basiert, aber einen anderen Ansatz zum Laden von Variablen ausprobiert. Muss von der Konsole ausgeführt werden. Jede Seite wird in einer separaten Eingabeaufforderung eingegeben.
BEARBEITEN : Verwenden Sie den Rückgabewert von
eval
, um 2 Zeichen zu speichern. Beats @tomsmeding, wahoo! :)quelle
Excel, 42 Bytes
Basierend auf Herons Formel, High School Algebra bis Golf.
Ungolfed / Unalgebra'ed
quelle
Japt ,
171615 BytesProbier es aus
2 Bytes gespart dank Hinweis der ETH auf eine redundante Newline und einige alternative Möglichkeiten zur Reduzierung des Arrays.
quelle
NmnU ×*U q
,NmnU r*U q
,Np0 mnU ×q
Tcl, 74 Zeichen.
Übergeben Sie die Seiten als Argument.
Für die Eingabe
2 3 4
des Wertess
ist(2+3+4)/2.
als String. Doppelte Bewertung FTW.quelle
proc
erstreckt sie sich auf nur 81 Bytes tio.run/##NYo7CoAwEAV7T/...Julia 0.6.0, 48 Bytes
Grundsätzlich Reiher Formel:
quelle
TI-BASIC,
1412 BytesAusgehend von einer von Kenneth Hammond (Weregoose) geschriebenen Heron's Formula-Routine spielte ich zwei Bytes Golf. Beachten Sie, dass TI-BASIC tokenisiert ist und jedes Token wie
Ans
undprod(
ein oder zwei Bytes im Speicher des Rechners enthält.Eingabe über
Ans
zB in das Formular{a,b,c}:[program name]
.Erklärt:
quelle
Gleichstrom , 34 Bytes
Probieren Sie es online!
quelle
C (gcc) , 55 Bytes
Probieren Sie es online!
Noch eine weitere Implementierung der Hero-Formel.
quelle
quelle
ARBLE , 36 Bytes
Herons Formel.
Probieren Sie es online!
quelle
Perl 5
-MList::Util=sum -ap
, 40 BytesProbieren Sie es online!
quelle
Stax , 10 Bytes
Führen Sie es aus und debuggen Sie es
Operiert Dreifache von Gleitkommazahlen. Verwendet Herons Formel
quelle
APL (NARS), 16 Zeichen, 32 Byte
Man muss die Erone-Formel umwandeln, wenn a, b, c Seiten des Dreiecks sind
zur APL Sprache ... testen
quelle