Anomale Stornierung (von Wolfram Alpha):
Anomale Löschung ist eine "Löschung" der Ziffern von a und b im Zähler und Nenner eines Bruchteils a / b, was zu einem Bruch führt, der dem Original entspricht. Beachten Sie, dass bei mehreren, aber unterschiedlichen Zählungen einer oder mehrerer Ziffern im Zähler und Nenner Unklarheiten darüber bestehen, welche Ziffern abgebrochen werden sollen. Daher ist es am einfachsten, solche Fälle von der Prüfung auszuschließen. Verknüpfung
Nehmen wir in einfachen Worten an, Sie haben einen Bruchteil a / b
. Wenn Sie die Ziffern in der Fraktion löschen können, um eine andere Fraktion zu erstellen, c / d
die der ursprünglichen ( a / b = c / d
) entspricht, kann eine anomale Stornierung verwendet werden, um die Fraktion zu vereinfachen.
Ihre Herausforderung besteht darin, ein Programm oder eine Funktion zu a/b
erstellen , die eine Bruchzeichenfolge in das Formular eingibt und einen Wahrheitswert ausgibt oder zurückgibt, wenn der Bruch durch anomale Löschung vereinfacht werden kann, und ansonsten einen Falschwert. a
und b
werden immer positive ganze Zahlen ungleich Null sein. a
und b
wird immer zwei oder mehr Ziffern haben. Außerdem werden alle Ziffern von entweder gelöscht a
oder b
nicht gelöscht (Sie erhalten keine Eingabe 12/21
), mindestens eine Ziffer von a
und b
werden jedes Mal gelöscht (Sie erhalten 43/21
keine Eingabe ), und das Endergebnis wird niemals 0
für beide sein a
oder b
. Ihr Programm muss alle gängigen Ziffern zwischen a
und b
(dh in1231/1234
müssen Sie a 1
, a 2
und a 3
) aufheben . Wenn es mehrere Stornierungsmöglichkeiten gibt, wählen Sie zuerst die am weitesten links stehende Ziffer (515/25 wird 15/2, nicht 51/2).
Beispiele:
Input Output Why
1019/5095 true Remove the 0 and the 9 from both sides of the fraction to get 11/55, which is equivalent.
16/64 true Remove the 6 from both sides, and get 1/4.
14/456 false Remove the 4s. 14/456 is not equal to 1/56.
1234/4329 false Remove the 2s, 3s, and 4s. 1234/4329 is not equal to 1/9.
515/25 false Remove the first 5 from each side. 15/2 is not equal to 515/25.
Dies ist Code-Golf , also gewinnt der kürzeste Code in Bytes!
quelle
Antworten:
Pyth,
2219 BytesDanke an @isaacg für drei Bytes!
Erläuterung:
Probieren Sie es hier aus .
quelle
m.-Fd
kann zu Golf gespielt werden.-M
. EbensomcFsMd
kann Golf gespielt werdencMsMM
..-FM
es nicht funktioniert hat.M
Spritzt also automatisch auf nicht-monadische Funktionen?𝔼𝕊𝕄𝕚𝕟 17 Zeichen / 34 Bytes
Try it here (Firefox only).
Erläuterung
quelle
Ruby,
9576 BytesErläuterung
Ein großes Dankeschön an Doorknob für das Golfen mit 19 Bytes.
quelle
TeaScript, 22 Bytes
Jetzt, da alle Fehler in TeaScript 3 behoben sind, funktioniert dies einwandfrei
Probieren Sie es online aus
Testsuite
quelle
E is not defined
.MATL , 35 Bytes
Beispiele
Erläuterung
quelle
Javascript ES6, 73 Bytes
quelle