Permet de définir une classe de fonctions. Ces fonctions seront mappées des entiers positifs aux entiers positifs et doivent satisfaire aux exigences suivantes:
La fonction doit être bijective, ce qui signifie que chaque valeur correspond à et est mappée à exactement une valeur.
Vous devez pouvoir passer de n'importe quel entier positif à tout autre entier positif par des applications répétées de la fonction ou de son inverse.
Maintenant, écrivez du code qui exécutera n'importe quelle fonction de cette classe sur son entrée.
Il s'agit d'une question de code-golf, donc les réponses seront notées en octets, avec moins d'octets étant mieux.
1+
le lisp commun devrait faire l'affaire ici.Réponses:
Python 3 , 24 octets
Essayez-le en ligne!
la source
Python, 22 octets
Les nombres pairs descendent jusqu'au numéro pair précédent, les nombres impairs remontent au numéro impair suivant et le mappage 2 -> 1 relie ces deux.
la source
JavaScript (ES6), 20 octets
Cartes
... -> 5 -> 3 -> 1 -> 2 -> 4 -> ...
, qui je pense est valide. Corrige moi si je me trompe...la source
n=>n%2?n+2:n-2||1:2
Haskell, 20 octets
L'exemple de fonction du commentaire de l'OP dans Haskell. Essayez-le en ligne!
la source
Gelée , 6 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
Python 3, 43 octets
Essayez-le en ligne!
Et l'inverse, également 43 octets:
Essayez-le en ligne!
Les liens TIO utilisent le code de bas de page de test de Dennis.
Puisque tout le monde utilise une façon de faire, j'ai décidé que je serais différent, alors j'ai créé ma propre fonction (bien que je ne sois probablement pas la première à la découvrir). Cette fonction fonctionne comme
... 10 -> 7 -> 6 -> 3 -> 2 -> 1 -> 4 -> 5 -> 8 -> 9 -> ...
, je peux vous montrer le dessin à la main que j'ai fait pour tester cela si vous le souhaitez.Mon algorithme de golf
peut êtreprobablement golfable - des conseils seraient appréciés.Versions non golfées: essayez-le en ligne!
la source
05AB1E , 8 octets
Essayez-le en ligne!
Exactement ce que fait le truc de Dennis.
Essayez-le en ligne!
les trucs de orlp.
la source
Mathematica, 21 octets
Avancez, rien à voir ici ...
la source
Java (OpenJDK 8) , 22 octets
Essayez-le en ligne!
Je souhaite que Java ait un
**
opérateur d'exponentiation. Tant pis!la source