Introduction:
En général , nous parlons généralement de quatre dimensions: trois dimensions de l' espace pour x
, y
et z
; et une dimension temporelle. Par souci de ce défi cependant, nous allons séparer la dimension du temps en trois ainsi: past
, present
et future
.
Contribution:
Deux listes d'entrées. Un contenant des x,y,z
coordonnées entières et un contenant des années entières.
Production:
L'une des quatre sorties distinctes et constantes de votre choix. Un pour indiquer la sortie space
; un pour indiquer la sortie time
; un pour indiquer la sortie both space and time
; et un pour indiquer la sortie neither space nor time
.
Nous indiquerons que nous sommes passés aux trois dimensions d'espace si les différences des tuples entiers ne sont pas égales à 0 pour les trois dimensions.
Nous indiquerons que nous sommes passés aux trois dimensions temporelles s'il y a au moins une année dans le passé, au moins une année dans le futur et au moins une année égale à l'année en cours (donc dans le présent).
Exemple:
Entrée:
Liste des coordonnées: [{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}]
Liste des années:[2039, 2019, 2018, 2039, 2222]
Sortie:
constante pourspace
Pourquoi?
Les x
coordonnées sont [5,5,-6,5]
. Puisqu'ils ne sont pas tous pareils, nous sommes passés par la x
dimension spatiale.
Les y
coordonnées sont [7,3,3,7]
. Puisqu'ils ne sont pas tous pareils, nous sommes également passés par la y
dimension spatiale.
Les z
coordonnées sont [2,8,8,2]
. Puisqu'ils ne sont pas tous pareils, nous sommes également passés par la z
dimension spatiale.
L'année en cours est 2018
. Il n'y a pas d'années avant cela, nous n'avons donc pas visité la past
dimension temporelle.
Il y a un 2018
cadeau dans la liste des années, nous avons donc visité la present
dimension temporelle.
Il y a plusieurs années au-dessus 2018
( [2039, 2019, 2039, 2222]
), nous avons donc également visité la future
dimension temporelle.
Puisque nous avons visité les trois space
dimensions, mais seulement deux des trois time
dimensions, la sortie ne sera que (la constante de) space
.
Règles du défi:
- Vous pouvez utiliser quatre sorties distinctes et constantes pour les quatre états possibles.
- L'entrée peut être dans n'importe quel format raisonnable. La liste des coordonnées peut être des tuples, des listes / tableaux internes de taille 3, des chaînes, des objets, etc.
- Vous pouvez supposer que les
x,y,z
coordonnées seront des entiers, donc pas besoin de gérer les décimales à virgule flottante. Tout dux
,y
et / ou lesz
coordonnées peuvent être des valeurs négatives, cependant. - Vous ne pouvez pas prendre les listes d'entrées pré-commandées. Les listes d'entrées doivent être dans l'ordre affiché dans les cas de test.
- Vous pouvez supposer que toutes les valeurs de l'année seront dans la plage
[0,9999]
; et vous pouvez supposer que toutes les coordonnées sont dans la plage[-9999,9999]
. - Si votre langue n'a AUCUN moyen de récupérer l'année en cours, mais que vous souhaitez toujours relever ce défi, vous pouvez le prendre comme entrée supplémentaire et marquer votre réponse comme (non concurrente) .
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues non-golfeur de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse avec des règles d'E / S par défaut , vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code (par exemple TIO ).
- De plus, l'ajout d'une explication à votre réponse est fortement recommandé.
Cas de test:
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]
est bien (et[-9999,9999]
pour les coordonnées est bien aussi.Réponses:
05AB1E , 15 octets
La sortie est une liste
[space, time]
où 1 signifiex
et 0 signifieno x
Essayez-le en ligne!
Explication
la source
-.±
place de.S
(d'où le +1 octet ..) et‚
(paire) au lieu de)
Ùg3Q
, qui ressemble au plus grand voleur d'octets, mais je ne suis pas sûr que ce soit possible: /ê
une opération au niveau du bit ou des deltas ou quelque chose, mais je ne peux pas trouver d'alternatives à 3 octets.Python 2 ,
111109 octetsEssayez-le en ligne!
la source
Perl 6 ,
4746 octets-1 octet grâce à nwellnhof
Essayez-le en ligne!
Bloc de code anonyme qui prend deux listes et renvoie un tuple de booléens, le premier élément étant de savoir si vous avez voyagé dans le temps, et le second si vous n'avez pas voyagé dans l'espace.
Explication
la source
Japt, 22 octets
Prend en entrée un tableau 2D d'entiers pour les dimensions de l'espace et un tableau 1D d'entiers pour les années. Sorties
2
pour l'espace uniquement,1
pour le temps uniquement,3
pour les deux et0
pour aucun.Essayez-le
la source
Japt , 25 octets
Je suis sûr à 100% que ce n'est pas la meilleure approche, toujours à la recherche d'un moyen plus court de le faire: c
Renvoie un tuple de booléens. Le premier est si vous avez voyagé dans l'espace et le second si vous avez voyagé dans le temps
Essayez-le en ligne!
la source
yâ
transpose, prend des éléments uniques et transpose en arrière , donc vous voudrez probablement le faire à laUy e_â ʦ1Ã
place)â
dans lae
méthode lors de mon premier essai, aussi, avant de la déplacery
sur un coup de tête pour voir si cela fonctionnerait.q
dans le tableau transposé mappé,typeof q instanceof Array
... quel bug pratique: P suppose que je ne peux pas le corriger maintenant jusqu'à la version 1.4.6 ...JavaScript (ES6),
104100 octets(space)(time)
24% du code est dépensé pour déterminer en quelle année nous sommes ... \ o /
Essayez-le en ligne!
Commenté
la source
console.log(f([[5,4,2], [3,4,0], [1,4,2], [9,4,4]])([2020])) // neither
R ,
106, 105 octetsEssayez-le en ligne!
Contribution :
Génère une valeur entière égale à:
la source
Lot, 353 octets
Remarque: Étant donné que les virgules sont des séparateurs d'arguments dans Batch, afin de saisir les coordonnées spatiales, vous devez les citer, par exemple
Explantion:
Désactivez la sortie indésirable.
Configurez deux masques de bit et extrayez également l'année en cours. (Dans les paramètres régionaux AAAA-MM-JJ, utilisez
%date:~,4%
le même nombre d'octets.)Faites une boucle sur tous les arguments. Cela
~
provoque la division des valeurs de coordonnées en paramètres séparés.Vérifiez si les masques de bits sont entièrement définis et générez le résultat approprié.
Voyez s'il s'agit d'une paire de coordonnées ou d'une coordonnée et d'une année.
S'il s'agit d'une coordonnée, mettez à jour le masque de bits d'espace selon que la dimension spatiale pertinente a été visitée.
S'il s'agit d'une année, mettez à jour le masque de bits temporel selon que la dimension temporelle pertinente a été visitée.
la source
Java 10, 154 octets
Retourne
1
pour l' espace ,2
pour le temps ,3
pour les deux ,0
pour aucun . Essayez-le en ligne ici .Non golfé:
la source