Diese Frage hat Ihnen ein Spiel gestellt, das ich gerne spiele, wenn ich in langen Telefonkonferenzen stecke.
Wie viele gültige mathematische Gleichungen können unter Verwendung von nur arithmetischen Grundoperationen für alle Zeiten zwischen 24 Stunden (von 00:00 bis 23:59 Uhr) erstellt werden?
Eingabe: Zwei vierstellige Zeichenfolgen (ohne Doppelpunkt), die gültige Zeiten in einem 24-Stunden-Zyklus darstellen.
Beispiele:
Bei Eingabe = 0000, 1300
03:26 produces: "0+3*2=6" and "03*2=6" etc.
11:10 produces quite a few, including: "1*1=1+0" and "1=1=1^0" and "1=11^0" etc.
12:24 produces: "1/2=2/4" and "1=(2*2)/4" etc.
Gültige Operationen sind:
- Zusatz
- Subtraktion
- Multiplikation
- Division (Gleitkomma)
- Potenzierung
- Fakultät
Andere zulässige Symbole
- Klammern
- Gleichheitszeichen
Kürzester Code gewinnt.
Anmerkungen
- Ziel ist es, die Anzahl der gültigen Ausdrücke zwischen zwei und nicht die Anzahl der Ausdrücke zu ermitteln , die einen gültigen Ausdruck enthalten.
- Die zwei als Eingabe angegebenen Zeiten sind im Zeitbereich enthalten.
- Sie können die Ziffern in beliebiger Weise gruppieren, sodass "1223" "12 23" oder "1 2 23" oder "1 223" usw. usw. sein kann.
- Sie können beliebig viele Klammern verwenden.
- Sie können mehr als ein
=
Zeichen verwenden. Zum Beispiel hat die Zeit11:11
den gültigen Ausdruck1=1=1=1
. - Wenn das erste Mal chronologisch nach dem zweiten Mal auftritt, sollte sich der Zeitbereich so erstrecken, als würde er in den nächsten Tag übergehen.
- Die Nummern müssen in der ursprünglichen Reihenfolge bleiben. Sie können die Ziffern nicht neu anordnen.
- Wenn Zahlen gruppiert werden, können Nullen absolut die vorderste Ziffer sein. In diesem Fall werden sie ignoriert ("0303" gruppiert als "03 03" besteht nur aus zwei Ziffern mit dem Wert 3).
- Sie dürfen das Minuszeichen NICHT als unäre Negation verwenden. Daher erzeugt "12:01" NICHT "1-2 = - (01)", sondern "1-2 = 0-1".
- Sie dürfen keine Dezimalstellen zu Ziffern hinzufügen. Daher erzeugt "12:05" NICHT "1/2 = 0,5".
- Keine Verkettung von Fakultäten - einer Ziffer darf höchstens ein "!" Folgen, sonst hätten viele Male unendliche Lösungen. Bsp .: "5!" ist gültig aber "5 !!" ist ungültig.
code-golf
expression-building
clock
nobillygreen
quelle
quelle
0000 1300
Gleichungen aus der Zählung abgeleitet0000
und1300
in die Zählung einbezogen werden?Antworten:
Python3, 363 Zeichen
Da bis heute keine Antwort gegeben wird, gebe ich ab, was ich bekommen habe. Leider ist der try / except-Block zu fett, ich habe dort keine Möglichkeit gefunden, Zeichen zu sparen. Es ist wirklich schwierig mit den verschachtelten Schleifen dort, nicht alles kann mit Listenverständnissen gemacht werden, denke ich, aber vielleicht kann mir jemand sagen, wie.
Ich habe mich jedoch darauf beschränkt, nur die grundlegenden mathematischen '+ - * /' und keine Klammern zu verwenden.
Mein vollständiger Code (hoffentlich etwas erklärend) zu diesem CodeGolf ist in meinem Pastebin zu finden .
quelle