Aufgabe
Schreiben Sie eine Funktion oder ein Programm, um die Anzahl der Umdrehungen zu ermitteln, die ein Rad aufgrund seines Radius benötigt, um eine bestimmte Strecke zurückzulegen.
Regeln
Die Eingabe kann aus 2 positiven rationalen Zahlen bestehen und in jedem geeigneten Format erfolgen.
Beide Eingänge sind von derselben Einheit.
Ihr Code darf keine Ziffern 0-9 enthalten.
Die Ausgabe ist eine Ganzzahl (im Fall von float rund bis unendlich)
Dies ist Code-Golf, also gewinnt der kürzeste Code
Beispiele
distance radius output
10 1 2
50 2 4
52.22 4 3
3.4 0.08 7
12.5663 0.9999 3
code-golf
restricted-source
Vedant Kandoi
quelle
quelle
-DP=3.14
in Compiler-Flags tun , dieP
als Annäherung an pi definiert werden, was wahrscheinlich der Fall ist nicht das, was Sie beabsichtigt hattenAntworten:
MathGolf ,
54 BytesProbieren Sie es online aus!
Erläuterung
quelle
APL + WIN, 9 Bytes
Eingabeaufforderung für den Radius gefolgt von der Entfernung:
Probieren Sie es online aus! Mit freundlicher Genehmigung von Dyalog Classic
Erläuterung:
quelle
⌈⎕÷○+⍨⎕
funktioniert für 7 Bytes.Java 8,
3230 BytesEnthält
\u0002
zwischen den einzelnen Anführungszeichen nicht druckbare Zeichen .Port von @jOKings Perl 6 Antwort .
Probieren Sie es online aus.
quelle
2
, und dann nur die Ziffer1
... Zum Glück hat Erik tatsächlich Recht, dass eine einfache negative Unär den gleichen Effekt hat wie+1
(oft verwendet) Klammern loszuwerden, da das Negative und das Unäre eine höhere Priorität haben als die meisten anderen Operatoren).Perl 6 ,
1512 Bytes-3 Bytes danke an Nwellnhof, der mich an Tau erinnert
Probieren Sie es online aus!
Anonym Welches Lambda auch immer, das die Formel verwendet
(a/b/tau).floor+1
. Tau ist zweimal pi. Die beiden anonymen Variablen$
werden zu der Zahl gezwungen, mit der0
die Zahl+|0
(bitweise oder 0) aufgeschlüsselt und eins+!$
(plus nicht Null) addiert wird .quelle
Python 2 ,
47454443 BytesProbieren Sie es online aus!
quelle
l/(r+r)//pi+l/l
ein Byte erstellen und speichern.05AB1E , 6 Bytes
Port von @flawrs Python 2-Kommentar .
Nimmt die Eingabe in der Reihenfolge
radius
,distance
.Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
PHP, 47 Bytes
Probieren Sie es online aus .
quelle
Ruby , 29 Bytes
Probieren Sie es online aus!
quelle
C 46 Bytes
Ich bin neu in PPCG, daher bin ich mir nicht sicher, ob ich andere Teile in der Byteanzahl zählen muss, wie z
Wird für die Ceil-Funktion benötigt, wodurch die Anzahl auf 64 Byte erhöht wird
quelle
#include
Ihre Bytesumme zählen und dergleichen. Ein Link zu einer Online-Testsuite ist immer willkommen.Catholicon , 8 Bytes
Erläuterung:
Neue Version (pi eingebaut aus einem Byte, Teilungsparameter vertauscht), 5 Bytes
quelle
J ,
109 BytesProbieren Sie es online aus!
quelle
Stax , 5 Bytes
Führen Sie es aus und debuggen Sie es
quelle
MathGolf ,
65 BytesSemi-Port von @flawrs Python 2-Kommentar .
Übernimmt die Eingabe in der Reihenfolge
radius distance
.-1 Byte, da das
ceil
eingebaute Gerät gerade hinzugefügt wurde und das ersetztfloor+1
.Probieren Sie es online aus .
Erläuterung:
quelle
C (gcc) ,
454745 BytesEine vernünftige Annäherung an pi ist 355/113. Da der Umfang C = 2 * r * PI ist, können wir anstelle von pi tau verwenden, was dann natürlich ~ 710/113 ist. 710 hat zufällig die geeigneten Faktoren 2 * 5 * 71, die kompakt ausgedrückt werden als
'G' * '\n'
.Wir fügen eins (r/r
) hinzu, um das Runden auf unendlich zu erzwingen.Bearbeiten: Mein Trick war zu klug für sein eigenes Wohl: Es hat natürlich dazu geführt, dass es fehlgeschlagen ist, wenn der Abstand ein Vielfaches des Umfangs war.
Probieren Sie es online aus!
quelle
Julia 1.0 , 20 Bytes
Probieren Sie es online aus!
quelle
R ,
3932 Bytes-7 Bytes Danke an Giuseppe
Probieren Sie es online aus!
Ich habe das Gefühl, dass dies definitiv Golf sein könnte, aber ich bin im Moment ein bisschen faul, etwas dagegen zu unternehmen
quelle
min , 16 Bytes
Nimmt den Abstand und den Radius, die in dieser Reihenfolge auf den Stapel gelegt wurden. Dann dividiert durch Tau, rundet und macht int.
quelle
Gelee , 6 Bytes
Probieren Sie es online aus!
quelle
Japt, 7 Bytes
Probieren Sie es hier aus
quelle
JavaScript (Babel-Knoten) , 25 Byte
-2 Bytes mit @flawr comment = D. -1 von @Kevin. -7 von @Shaggy
Probieren Sie es online aus!
quelle
a=>b=>Math.ceil(a/(b+b)/Math.PI)
ist 32 Bytes. :)Dart ,
4746 BytesProbieren Sie es online aus!
quelle
Haskell, 25 Bytes
quelle
(!)
stattf
und verwendenceiling$
stattceiling(..)
dem spart 3 Bytes: Versuchen Sie es online!Lua ,
61585749 BytesProbieren Sie es online aus!
Danke an KirillL. -8 Bytes.
quelle
Common Lisp, 36 Bytes
Probieren Sie es online aus!
quelle
Tcl , 50 Bytes
Probieren Sie es online aus!
Tcl , 53 Bytes
Probieren Sie es online aus!
Das Fehlen einer Pi-Konstante oder -Funktion führt dazu, dass ich den Golfwettbewerb verliere!
quelle
[incr i]
ist ziemlich klug, aber ich denke, Sie können$d/$d
oder$r/$r
stattdessen verwenden.PowerShell,
535251 Byte-1 Byte dank @mazzy
-1 Byte, nachdem mir klar wurde, dass ich nach dem
param()
Block kein Semikolon benötigeProbieren Sie es online aus!
Übernimmt Eingaben von zwei Befehlszeilenparametern, Abstand
-d
und Radius-r
.quelle
param($d,$r);($a=[math])::ceiling($d/($r+$r)/$a::pi)
JavaScript (Babel-Knoten), 23 Byte
Probieren Sie es online aus!
quelle
Clojure , 50 Bytes
Eine anonyme Funktion, die zwei Ganzzahlen
a
undb
als Argumente akzeptiert : den Abstand bzw. den Radius.Probieren Sie es online aus!
(count " ")
2
quelle
TI-Basic (Serie 83), 12 Byte
Nimmt die Eingabe als Liste von Radius und Entfernung in
Ans
: zum Beispiel{0.9999:12.5663:prgmX
.e^(ΔList(ln(Ans
nimmt das Verhältnis dieser Entfernungen undmin(
wandelt dies in eine Zahl um. Dann dividieren wir durchTmax
, was ein Grafikparameter ist, der standardmäßig 2π entspricht. Schließlich-int(-
nimmt die Decke.quelle
Pari / GP , 23 Bytes
Probieren Sie es online aus!
quelle