Definiciones
Una biyección de un conjunto
S
a un conjuntoT
es una función a partirS
deT
tal manera que uno de los elementosT
, se estudia con exactamente un elemento enS
.Una biyección dentro de un conjunto
S
es una biyección deS
aS
.Los números naturales son los enteros que son mayores o iguales que
0
.Un subconjunto de un conjunto
S
es un conjunto tal que todos los elementos del conjunto también están enS
.Un subconjunto adecuado de un conjunto
S
es un conjunto queS
no es igual a un subconjuntoS
.
Tarea
Escriba un programa / función que tome un número natural como entrada y genere un número natural. Debe ser una biyección, y la imagen de los números primos bajo el programa / función {f(p) : p ∈ ℙ}
, debe ser un subconjunto apropiado de ℙ
dónde ℙ
están los números primos.
Puntuación
Este es el código de golf . La respuesta más corta en bytes gana. Se aplican lagunas estándar .
Respuestas:
Mathematica,
5448 bytesDefine la siguiente biyección:
La idea básica es asignar cada primo al siguiente, para asegurarse de que estén asignados a un subconjunto adecuado. Esto da como resultado una "brecha" en 2 . Para llenar ese espacio, queremos asignar 4 a 2 y luego cada número compuesto al número compuesto anterior, para "burbujear" el espacio. Dado que 2 y 3 son los únicos dos primos adyacentes, podemos expresar ambas asignaciones como " n-1 o si es un primo, entonces n-2 ". Finalmente, esta asignación termina enviando 1 a 0 y hacemos que envíe 0 de nuevo a 1 tomando el valor absoluto de n-1 .
fuente
0
?MATL , 21 bytes
Gracias a Emigna por detectar un error, ahora corregido
Pruébalo en línea!
Esto implementa la siguiente biyección. Escriba los primos en una fila y los no primos a continuación:
Luego, la salida se obtiene siguiendo la flecha de la entrada:
Código explicado
fuente
Jalea , 14 bytes
Pruébalo en línea!
Utiliza el algoritmo de Luis.
fuente
JavaScript (ES6),
827775 bytesImplementa la misma lógica que la respuesta de Luis Mendo .
Formateado y comentado
Manifestación
Mostrar fragmento de código
fuente
Jalea , 12 bytes
Pruébalo en línea!
Cómo funciona
fuente