Définitions
Une bijection d'un ensemble
S
à un ensembleT
est une fonction deS
àT
telle qu'un élément dansT
est mappé par exactement un élément dansS
.Une bijection dans un ensemble
S
est une bijection deS
àS
.Les nombres naturels sont les entiers supérieurs ou égaux à
0
.Un sous - ensemble d'un ensemble
S
est un ensemble tel que chaque élément de l'ensemble se trouve également dansS
.Un sous - ensemble correct d'un ensemble
S
est un ensemble dont un sous-ensembleS
n'est pas égal àS
.
Tâche
Écrivez un programme / une fonction qui prend un nombre naturel en entrée et génère un nombre naturel. Ce doit être une bijection, et l'image des nombres premiers sous le programme / fonction {f(p) : p ∈ ℙ}
, doit être un sous-ensemble approprié de ℙ
, où ℙ
sont les nombres premiers.
Notation
C'est du code-golf . La réponse la plus courte en octets l'emporte. Des échappatoires standard s'appliquent .
Réponses:
Mathematica,
5448 octetsDéfinit la bijection suivante:
L'idée de base est de mapper chaque nombre premier au suivant, pour s'assurer qu'ils sont mappés à un sous-ensemble approprié. Il en résulte un «écart» à 2 . Pour combler cet écart, nous voulons mapper 4 à 2 , puis chaque autre nombre composite au nombre composite précédent, pour «faire bouillonner» l'écart. Puisque 2 et 3 sont les deux seuls nombres premiers adjacents, nous pouvons exprimer ces deux correspondances comme " n-1 ou si c'est un nombre premier alors n-2 ". Enfin, ce mappage finit par envoyer 1 à 0 et nous lui faisons renvoyer 0 à 1 en prenant la valeur absolue de n-1 .
la source
0
?MATL , 21 octets
Merci à Emigna d' avoir repéré une erreur, maintenant corrigée
Essayez-le en ligne!
Cela implémente la bijection suivante. Écrivez les nombres premiers consécutifs et les nombres non premiers ci-dessous:
Ensuite, la sortie est obtenue en suivant la flèche de l'entrée:
Code expliqué
la source
Gelée , 14 octets
Essayez-le en ligne!
Utilise l'algorithme de Luis.
la source
JavaScript (ES6),
827775 octetsImplémente la même logique que la réponse de Luis Mendo .
Formaté et commenté
Démo
Afficher l'extrait de code
la source
Gelée , 12 octets
Essayez-le en ligne!
Comment ça fonctionne
la source