Im Golf wird der Standard-Scratch eines Platzes nach folgender Formel berechnet:
(3*num_of_3_par_holes + 4*num_of_4_par_holes + 5*num_of_5_par_holes) - difficulty_rating
Ihre Aufgabe ist es, anhand dieser 4 Eingaben den Standard-Scratch eines Golfplatzes zu berechnen.
Sie sollten Eingaben in einer beliebigen Standardform im Format vornehmen
[num_of_3_pars, num_of_4_pars, num_of_5_pars], difficulty rating
Wenn es jedoch Bytes spart, nehmen Sie viele Eingaben auf andere Weise vor.
Sie sollten das Endergebnis mit jeder akzeptierten Methode auf Meta ausgeben, z. B. mit der Rückkehr von einer Funktion.
Kürzester Code gewinnt, weil das Code-Golf ist !
Antworten:
Scratch, 145 Bytes
-2 dank boboquack
- ??? weil das Schreiben in Oto kürzer ist als in Englisch
(Weil Kratzer der Standardkratzer ist.)
Hier ist ein Probelauf:
.
quelle
Gelee , 6 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
Java (OpenJDK 8) , 24 Byte
Probieren Sie es online!
quelle
Haskell , 22 Bytes
Probieren Sie es online! Verbrauch:
(3#2)5 7
Erträge35
.Dieses nicht so schöne Eingabeformat ist ein Byte kürzer als die einfache Lösung:
Punktloses und schönes Eingabeformat: (23 Bytes)
Probieren Sie es online! Binden an
f
und anrufen mitf [3,2,5] 7
.quelle
Mathematica, 13
14BytesVielen Dank an @ GregMartin. Nehmen Sie die Eingabe als Liste der Länge 4.
quelle
{3,4,5,-1}.#&
(13 Bytes) kürzen .Python 3 , 28 Bytes
Probieren Sie es online!
quelle
Javascript, 24 Bytes
quelle
Perl6, 16 Zeichen
(Yepp, das ist ein Sub.)
Probelauf:
Probieren Sie es online!
quelle
Julia 0,5 , 15 Bytes
Probieren Sie es online!
quelle
⋅
drei Bytes, oder bin ich falsch gezählt? Wäre.*
das eine Verbesserung? Bearbeiten: Macht nichts - habe den Summierungsteil verpasst..*
Führt nur eine elementweise Multiplikation durch. Es geht nicht um die Summe der Produkte.C #, 24 Bytes
quelle
x86-64-Maschinencode, 14 Byte
Eine Funktion, die der Aufrufkonvention von System V AMD64 folgt (allgegenwärtig auf Gnu / Linux-Systemen) und vier ganzzahlige Parameter akzeptiert:
EDI
= Anzahl_von_3_Par_LöchernESI
= Anzahl_von_4_Par_LöchernEDX
= Anzahl_von_5_Par_LöchernECX
= schwierigkeitsbewertungEs wird ein einzelner Wert zurückgegeben, der Standard-Scratch in der
EAX
Register zurück.Ungolfed Assembler-Mnemonik:
Nur eine einfache Übersetzung der Formel. Interessant ist, dass dies im Wesentlichen derselbe Code ist, den Sie auch bei der Optimierung der Geschwindigkeit schreiben würden . Dies zeigt wirklich die volle Leistung der x86 -
LEA
Instruktion, die ausgelegt ist , l oad ein e ffective eines ddress, kann aber (durch niedrigen Potenzen von 2 Multiplikation) in einem einzigen Befehl, so dass es ein leistungsstarken Mehrzweck - Rechen Arbeitspferd Additions- und Skalierung tun .quelle
Gelee ,
107 BytesProbieren Sie es online!
-3 Bytes dank Erik The Outgolfer!
Wie es funktioniert!
quelle
[]
aber Sie können3r5×⁸S_
diese Methode verwenden, um mehr Golf zu spielen (3r5
->[3, 4, 5]
,⁸
= linkes Argument, um es von dem zu unterscheidenS
,×
ist kommutativ).Oktave , 14 Bytes
Probieren Sie es online!
Etwa doppelt so lange wie die MATL-Antwort . Ich habe dies ursprünglich buchstäblich auf MATL portiert, aber es stellte sich heraus, dass
iY*
es länger als nur*s
. Beachten Sie, dass die Eingabea
, die die Löcher in der Reihenfolge und dann die Schwierigkeit enthält, ein Spaltenvektor sein sollte.quelle
@(a)[3:5 -1]*a
. Die Eingabe ist ein Spaltenvektor von[3 holes; 4 holes; 5holes; difficulty]
Julia , 21 Bytes
Probieren Sie es online!
quelle
Neim , 7 Bytes
Erläuterung:
Alternatives Programm:
3𝐈ᛖ𝕋𝐬S𝕊
Anstatt zu drücken
345
und dann die Zeichen abzurufen, wird das Array[1 2 3]
mit erstellt3𝐈
und dann zu jedem Element mit 2 hinzugefügtᛖ
.Probieren Sie es online!
quelle
This commit was pushed 8 days before the answer was posted.
Naja, das brauchst du eigentlich nicht.C (gcc) , 30 Bytes
Probieren Sie es online!
quelle
a
.Swift 3 ,
2519 BytesMir wurde klar, dass Sie das nicht brauchen
var f=
, weil Sie es wie ein Python-Lambda nennen können:Online testen!
Verwendung:
{$0*3+$1*4+$2*5-$3}(a,b,c,d)
Woa,b,c,d
sind die Parameter?quelle
Brainfuck , 39 Bytes
Probieren Sie es online!
Übernimmt die Eingabe und druckt die Ausgabe als ASCII-Zeichen. Beispielsweise würde der Wert 99 als c dargestellt.
Erläuterung:
quelle
Gallina , 38 Bytes
quelle
dc, 14 zeichen
Die Nummern müssen in separaten Zeilen übergeben werden.
Probelauf:
Probieren Sie es online!
quelle
Brachylog ,
1816 BytesProbieren Sie es online!
-2 dank Fatalize .
quelle
∧5⟦₁↺b;?z×ᵐġ₃+ᵐ-
ist 2 weniger Bytes,,,, 12 Bytes
Erläuterung
Nehmen Sie zum Beispiel die Eingänge 4, 3, 2, 1.
quelle
Cubix , 36 Bytes
Probieren Sie es online!
Beobachten Sie es laufen
Ein ziemlich lineares Programm, das sich einige Male auf sich selbst zurückspult. Grundlagen:
I3*r;U;
Holen Sie sich die erste Eingabe, multiplizieren Sie mit 3 und bereinigen Sie den StapelI4*/r\
Nächste Eingabe abrufen und mit 4 multiplizieren. Ergebnis nach unten drehen.Iw5*Ur;w<;r;;W
Holen Sie sich die nächste Eingabe, multiplizieren Sie mit 5 und bereinigen Sie den StapelI-r;w;
Holen Sie sich die letzte Eingabe, subtrahieren Sie vom Par 5-Ergebnis und bereinigen Sie den Stapel/+p+O\@
Addiere zum Par 4-Ergebnis, bringe das Par 3-Ergebnis nach oben. Addiere, gebe aus und halte anquelle
HP-15C (RPN), 14 Byte
Anweisungs-Hex-Codes:
Lesbare Version:
Die vier Zahlen werden der Reihe nach in den Stapel geladen, bevor das Programm ausgeführt wird.
quelle
Excel VBA, 20 Bytes
Anonymous VBE unmittelbaren Fensterfunktion , die eine Eingabe von dem Bereich nimmt
[A3:A6]
davon[A3:A5]
repräsentieren die Anzahl der3
,4
und5
par Löcher jeweils und[A6]
stellt die Schwierigkeit. Ausgabe in das VBE-SofortfensterDas obige ist eine komprimierte Version des Aufrufs
Dabei
"=3*A3+4*A4+5*A5-A6"
wird die Formel einer anonymen Zelle angegeben, wie vom[...]
Wrapper angegeben, und?
die veraltete Version desPrint
Aufrufs mit einem implizitenDebug.
KontextMehr Spaß Version, 34 Bytes
Anonymous VBE-Direktfensterfunktion mit denselben E / A-Bedingungen wie oben.
Das obige ist eine komprimierte Version des Aufrufs
Wo
"=SUMPRODUCT(A3:A5,ROW(A3:A5))"
wird die Formel einer anonymen Zelle angegeben, wie vom[...]
Wrapper angegeben, und?
die veraltete Version desPrint
Aufrufs mit einem implizitenDebug.
Kontext. In dieser Version werden der Bereich[A3:A5]
und die Zeilennummern dieses Bereichs (ROWS(A3:A5)
) als Arrays übergebenExcel-Version, 18 Bytes
Natürlich bieten sich die obigen Versionen auch an, um Versionen von zu übertreffen
und
quelle
R ,
2523 BytesProbieren Sie es online!
quelle
sum(scan()*3:5)-scan()
ist etwas kleinerscan
es normalerweise nicht, wenn es mehrere Eingänge wie diesen gibt, aber was solls!Befunge , 15 Bytes
Probieren Sie es online!
quelle
Japt , 12 Bytes
Probier es aus
quelle
Braingolf , 14 Bytes
Probieren Sie es online!
quelle
05AB1E , 7 Bytes
Probieren Sie es online!
quelle
3L
mitā
als die erste Eingabe eine Liste der Länge 3 sowieso sein wird.