In der Grundschule lernen die Kinder die richtigen Brüche, bei denen der Zähler kleiner als der Nenner ist und der Wert des Bruchs daher kleiner als eins ist. Später werden sie über Brüche unterrichtet, bei denen der Wert des Bruchs größer als eins ist, und über zwei verschiedene Möglichkeiten, diese Brüche auszudrücken: gemischte Brüche und unpassende Brüche.
Bestimmen Sie bei einem gemischten Bruch, ob er dem falschen Bruch entspricht, bei dem der ganzzahlige Wert und der Zähler miteinander verkettet sind. Bei der Eingabe 1 3/4
ist der falsche Bruch beispielsweise 13/4
.
Testfälle
1 3/4 -> falsey
1 3/10 -> truthy
6 6/7 -> falsey
55 55/100 -> truthy
4 9/100 -> falsey
40 9/100 -> falsey
7 49/1000 -> falsey
9 1/2 -> falsey
999 999/1000 -> truthy
1 21/200 -> falsey
1 21/101 -> falsey
Bei der Eingabe können Sie den ganzzahligen Teil und den Bruchteil als separate Eingaben verwenden, den Bruch jedoch nicht als Eingabe in zwei Teilen und nicht als Dezimalwert. Sie können den ganzzahligen Teil löschen (nicht als Eingabe verwenden), wenn Sie ihn nicht benötigen.
54/100
vereinfacht zu27/50
55/100
auch vereinfacht werden könnte11/20
, sodass sich dort die gleiche Frage stellt, die @JoKing aufgeworfen hat./
tut: /Antworten:
MATL , 7 Bytes
Die Eingabe ist eine Zeichenfolge. Die Ausgabe ist
1
für die Wahrheit,0
für die Falschheit.Probieren Sie es online! Oder überprüfen Sie alle Testfälle .
Erläuterung
quelle
Perl 6 ,
16,12 BytesProbieren Sie es online!
Übernimmt die Eingabe als Zeichenfolge, die den Bruch darstellt. Es stellte sich heraus, dass die dynamische Typisierung von Perl 6 Zeichenfolgen in rationale Brüche umwandeln kann, wer wusste das schon?
"1/10"
Wenn die Zeichenfolge zu einer Zahl gezwungen wird, wird sie zurückgegeben0.1
Der anonyme Codeblock prüft einfach, ob der Bruch plus eins mit dem Bruch verkettet ist. Dank der Python-Antwort von xnor, die mir gezeigt hat, dass der ganzzahlige Teil keine Rolle spielt.
Alte Lösung,
2726 BytesProbieren Sie es online!
Nimmt Eingaben als rationalen gemischten Bruch und gibt true oder false zurück. Gibt für den vierten Testfall false zurück, da dies vereinfacht werden kann.
Erläuterung:
.nude
gibt eine Liste von zurück[numerator, denominator]
.quelle
.nude
ist nach nu merator + de nominator benannt, aber es hat wahrscheinlich jemand große Freude gemacht, es so nennen zu können.'1 3/10'
{S/\s//==.words.sum}
Retina 0.8.2 ,
1716 BytesProbieren Sie es online! Benötigt nur den Bruchteil, sodass die verknüpfte Testsuite die Ganzzahl aus den Testfällen entfernt. Erläuterung: Die falsche Verkettung ist nur dann gleich der gemischten Zahl, wenn der Nenner eine Potenz von 10 ist und der Zähler für jede Null im Nenner eine Ziffer hat. Die Bilanzgruppen von .NET werden verwendet, um zu überprüfen, ob genügend Ziffern vorhanden sind. Bearbeiten: 1 Byte dank @sundar gespeichert.
quelle
1 11/10
. Es scheint ein Problem mit Ihrer Implementierung zu sein, nicht die Methode^
stattdessen ändern , damit es nicht hilft./
macht es eindeutig, womit Sie übereinstimmen, so dass ich nicht glaube, dass Sie den Anker dort brauchen (nach den üblichen Regeln für die Regex-Übereinstimmung, keine Retina-Expertise hier). Scheint trotzdem zu funktionieren: Online ausprobieren! .Schale , 8 Bytes
Probieren Sie es online!
Erläuterung
quelle
Python 2 , 43 Bytes
Probieren Sie es online!
quelle
R ,
7865 BytesProbieren Sie es online!
-13 Bytes dank Giuseppe und JayCe!
quelle
sub
in Ordnung hier. Sie können aucht=
anstelle vontext=
Stax , 5 Bytes
Führen Sie es aus und debuggen Sie es
Erläuterung:
quelle
Python 3 , 26 Bytes
Probieren Sie es online!
Zum Beispiel Eingabe
3/4
gibt3/4+1==13/4
. Anstatt den gesamten Teil der Fraktion zu nehmen, haben wir ihn nur so eingestellt, dass er1
die Gleichheit der gemischten Fraktionen testet. Testfälle von Chas Brown.quelle
Brachylog , 15 Bytes
Probieren Sie es online!
Nimmt den Bruchteil als Zeichenfolgeeingabe.
Verwendet indirekt die gleiche Idee wie meine Julia-Antwort - "der Nenner ist 10 ^ {Länge des Zählers}" kann gesagt werden als "der Nenner ist eine Zehnerpotenz, und die Länge des Nenners ist gleich der Länge des Zählers + die Länge von "/" (dh 1).
Ältere Antwort:
15 bis20 BytesProbieren Sie es online!
(-1 Byte dank @Fatalize, aber leider +6 Byte, da ich Fehler in der älteren Methode entdeckt habe.)
Gleiche Idee wie meine Julia-Antwort .
quelle
A
mit der Ausgangsgröße.
(und somit die letzten zu entfernen ,A
weil die Ausgangsgröße am Ende implizit ist)61/10
(nur 6 als Zähler / Präfix verwenden)2/110
(nur 10 als Nenner / Suffix verwenden). Ich habe versucht, das Problem zu beheben, bin mir aber nicht sicher, ob dies der beste Weg ist.Julia 0,6 , 29 Bytes
Probieren Sie es online!
Basierend auf der Idee, dass die Ausgabe nur dann wahr sein sollte, wenn der Nenner eine Zehnerpotenz mit so vielen Nullen ist, wie der Zähler Ziffern enthält. Nimmt Eingaben als
Rational
Typ an, prüft, ob der Nenner gleich 10 ist, erhöht auf die Anzahl der Ziffern im Zähler.quelle
Sauber , 57 Bytes
Probieren Sie es online!
Dieser ist etwas kürzer, bricht aber für große Zähler / Nenner.
Sauber ,
77616058 Bytes-1 dank OMᗺs Tipp zu meiner anderen Antwort
Probieren Sie es online!
Dies verwendet Neils Methode , es ist etwas kürzer als dies direkt zu tun.
Bei der Überladung von
1<+[48\\_<-:u]
Konvertierungen gibt es einige Tricks: Konvertierungen[Int]
nach[Char]
und dann nach{#Char} (:== String)
, aberInt
direkt nachString
.Sauber ,
9189 BytesProbieren Sie es online!
Definiert eine Funktion
$ :: String String -> Bool
, die Zähler und Nenner extrahiert, den ganzzahligen Teil und den Zähler in einer Zeichenfolge verkettet und die Äquivalenz überprüft.quelle
05AB1E , 7 Bytes
Nimmt nur die Brüche als Eingabe.
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
Oder eine allgemeinere Erklärung:
Wir müssen zwei Dinge validieren:
1, 10, 100, 1000
usw.)?PS: Wenn wir die Zähler und Nenner als getrennte Eingänge nehmen könnten, nur 3 Bytes hätte genügt:
g°Q
.quelle
JavaScript, 26 Bytes
Übernimmt Eingaben in currying syntax (
f(x)(y)
), wobeix
es sich bei der Ganzzahly
um den Bruch handelt, als Zeichenfolge.Probieren Sie es online aus
quelle
Java 10,
107706757 BytesWillkommen in der Welt ohne
eval
..-40 Bytes durch Erstellen eines Ports von @ChasBrowns Python 2-Antwort .
-10 Bytes dank @Shaggy (Ich hätte die Antwort von @ChasBrown besser lesen sollen und seine Verwendung von
find
(indexOf
) ..)Probieren Sie es online aus.
Erläuterung:
quelle
Haskell ,
4740 Bytes-7 dank OMᗺ
Probieren Sie es online!
Ein Port meiner Clean-Antwort nach Neils Methode.
quelle
Perl 5 -p, 23 Bytes
Probieren Sie es online!
Nimmt den Bruchteil alleine als Eingabe (wie durch OP erlaubt), gibt 1 für wahr und nichts für falsch aus.
Der für sich genommene Dezimalteil wäre nur dann genau gleich dem Zähler, wenn der Nenner die unmittelbar nächste Zehnerpotenz ist, die größer ist als der Zähler. Dies ist die Bedingung, auf die wir prüfen müssen.
quelle
Nein, 17 Bytes
Probieren Sie es online!
Erläuterung
quelle
TeaScript , 25 Bytes
Die erste Eingabe ist der Bruch, die zweite die ganze Zahl.
Ich habe gerade mit TeaScript angefangen, damit es viel Golf spielen kann
Probieren Sie es online!
quelle
R , 53 Bytes
Probieren Sie es online!
Nimmt nur den Bruchteil als Eingabe. Wie von xnor in einem Kommentar erwähnt:
Die Antwort von Robert S. ist weniger golfen, aber viel interessanter als meine.
quelle
C (GCC) ,
675655 BytesProbieren Sie es online!
quelle
r
? tio.run/…Excel, 52 Bytes
Ignoriert die Ganzzahleingabe. Grundsätzlich:
IS Denominator = 10^LEN(Numerator)
Für Nenner begrenzt auf
<10^9
: 48 Bytes:Ein Großteil der Logik spaltet sich auf
/
. Wenn die Eingabe separat erfolgen könnte, 16 Bytes:quelle
Elixier , 81 Bytes
Probieren Sie es online!
Könnte in der Lage sein, irgendwohin zu kommen
{n,"/"<>d}=Integer.parse b
, aber nicht sicher, wie.quelle
2DFuck , 86 Bytes
Probieren Sie es online!
Übernimmt die Eingabe ohne ganzzahligen Teil.
quelle
C (gcc / clang),
594947 BytesPort of Chas Browns Python 2 Antwort . Probieren Sie es hier online aus .
Ignoriert den ganzzahligen Teil der Eingabe. Vielen Dank an Jonathan Frech für das Golfen mit 2 Bytes.
Ungolfed:
quelle
'/'
kann höchstwahrscheinlich sein47
.ForceLang,
8678 Bytesquelle