Einführung:
Im Allgemeinen sprechen wir in der Regel von vier Dimensionen: drei Raumdimensionen für x
, y
und z
; und einmalige Dimension. Aber für die Zwecke dieser Herausforderung werden wir die Zeitdimension in drei geteilt auch: past
, present
, und future
.
Eingang:
Zwei Eingabelisten. Eine mit ganzzahligen x,y,z
Koordinaten und eine mit ganzzahligen Jahren.
Ausgabe:
Eine von vier unterschiedlichen und konstanten Ausgaben Ihrer Wahl. Eine, um die Ausgabe anzuzeigen space
; eine, um die Ausgabe anzuzeigen time
; eine, um die Ausgabe anzuzeigen both space and time
; und eine, um die Ausgabe anzuzeigen neither space nor time
.
Wir werden angeben, dass wir zu allen drei Raumdimensionen gegangen sind, wenn die Unterschiede der ganzzahligen Tupel nicht für alle drei Dimensionen 0 sind.
Wir werden angeben, dass wir zu allen drei Zeitdimensionen gegangen sind, wenn es in der Vergangenheit mindestens ein Jahr, in der Zukunft mindestens ein Jahr und mindestens ein Jahr gibt, das dem aktuellen Jahr entspricht (also in der Gegenwart).
Beispiel:
Eingabe:
Koordinatenliste: [{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}]
Jahresliste:[2039, 2019, 2018, 2039, 2222]
Ausgabe:
Konstante fürspace
Warum?
Die x
Koordinaten sind [5,5,-6,5]
. Da sie nicht alle gleich sind, haben wir die x
Raumdimension durchlaufen .
Die y
Koordinaten sind [7,3,3,7]
. Da sie nicht alle gleich sind, haben wir auch die y
Raumdimension durchlaufen .
Die z
Koordinaten sind [2,8,8,2]
. Da sie nicht alle gleich sind, haben wir auch die z
Raumdimension durchlaufen .
Das laufende Jahr ist 2018
. Es gibt keine Jahre davor, also haben wir die past
Zeitdimension nicht besucht .
Da die Jahresliste ein 2018
Geschenk enthält, haben wir die present
Zeitdimension besucht.
Es gibt mehrere Jahre über 2018
( [2039, 2019, 2039, 2222]
), daher haben wir auch die future
Zeitdimension besucht.
Da wir alle drei space
Dimensionen besucht haben, aber nur zwei der drei time
Dimensionen, ist die Ausgabe nur (die Konstante für) space
.
Herausforderungsregeln:
- Sie können vier verschiedene und konstante Ausgänge für die vier möglichen Zustände verwenden.
- Die Eingabe kann in jedem vernünftigen Format erfolgen. Die Koordinatenliste kann Tupel, innere Listen / Arrays der Größe 3, Zeichenfolgen, Objekte usw. sein. Die Liste der Jahre kann auch eine Liste von Datumsobjekten anstelle von Ganzzahlen sein, wenn dies Ihrer Byteanzahl zugute kommt.
- Sie können davon ausgehen, dass die
x,y,z
Koordinaten Ganzzahlen sind, sodass keine Gleitkomma-Dezimalstellen verarbeitet werden müssen. Jede derx
,y
und / oderz
Koordinaten können negative Werte sein, though. - Sie können die vorbestellten Eingabelisten nicht übernehmen. Die Eingabelisten sollten in der Reihenfolge sein, die in den Testfällen angezeigt wird.
- Sie können davon ausgehen, dass alle Jahreswerte im Bereich liegen
[0,9999]
. und Sie können davon ausgehen, dass alle Koordinaten im Bereich liegen[-9999,9999]
. - Wenn Ihre Sprache KEINE Möglichkeit hat, das aktuelle Jahr abzurufen, Sie diese Herausforderung dennoch ausführen möchten, können Sie sie als zusätzliche Eingabe verwenden und Ihre Antwort als (nicht konkurrierend) markieren .
Allgemeine Regeln:
- Dies ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich nicht von Code-Golf-Sprachen davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, eine möglichst kurze Antwort für "jede" Programmiersprache zu finden. - Für Ihre Antwort gelten Standardregeln mit Standard-E / A-Regeln . Sie können also STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden. Ihr Anruf.
- Standardschlupflöcher sind verboten.
- Wenn möglich, fügen Sie bitte einen Link mit einem Test für Ihren Code (dh TIO ) hinzu.
- Es wird dringend empfohlen, eine Erklärung für Ihre Antwort hinzuzufügen.
Testfälle:
Coordinates-input: [{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}]
Years-input: [2039, 2019, 2018, 2039, 2222]
Output: space
Coordinates-input: [{0,0,0}, {-4,-4,0}, {-4,2,0}]
Years-input: [2016, 2019, 2018, 2000]
Output: time
Coordinates-input: [{-2,-2,-2}, {-3,-3,-3}]
Years-input: [2020, 1991, 2014, 2018]
Output: both
Coordinates-input: [{5,4,2}, {3,4,0}, {1,4,2}, {9,4,4}]
Years-input: [2020, 1991, 2014, 2017, 2019, 1850]
Output: neither
[0,9999]
ist in Ordnung (und [-9999,9999]
für die Koordinaten ist auch in Ordnung.