Vamos a definir una clase de funciones. Estas funciones se asignarán de los enteros positivos a los enteros positivos y deben cumplir los siguientes requisitos:
La función debe ser Bijective, lo que significa que cada valor se asigna y se asigna exactamente por un valor.
Debe poder pasar de cualquier número entero positivo a cualquier otro número entero positivo mediante aplicaciones repetidas de la función o su inverso.
Ahora, escriba un código que realice cualquier función en esta clase en su entrada.
Esta es una pregunta de código de golf , por lo que las respuestas se puntuarán en bytes, con menos bytes mejor.
1+
en común el ceceo debería hacer el truco aquí.Respuestas:
Python 3 , 24 bytes
Pruébalo en línea!
fuente
Python, 22 bytes
Los números pares bajan al número par anterior, los números impares suben al siguiente número impar y el mapeo 2 -> 1 conecta esos dos.
fuente
JavaScript (ES6), 20 bytes
Mapas
... -> 5 -> 3 -> 1 -> 2 -> 4 -> ...
, que creo que es válido. Corrígeme si me equivoco...fuente
n=>n%2?n+2:n-2||1:2
Haskell, 20 bytes
La función de ejemplo del comentario del OP en Haskell. Pruébalo en línea!
fuente
Jalea , 6 bytes
Pruébalo en línea!
Cómo funciona
fuente
Python 3, 43 bytes
Pruébalo en línea!
Y a la inversa, también 43 bytes:
Pruébalo en línea!
Los enlaces TIO utilizan el código de pie de página de prueba de Dennis.
Como todos usan una forma de hacerlo, decidí que sería diferente, así que creé la función propia (aunque probablemente no sea la primera persona en descubrirlo). Esto funciona como mapas
... 10 -> 7 -> 6 -> 3 -> 2 -> 1 -> 4 -> 5 -> 8 -> 9 -> ...
, puedo mostrarle el dibujo a mano que hice para probar esto si lo desea.Mi algoritmo golfed
puede ser, probablemente, es golfable - consejos serán bienvenidos.Versiones sin golf: ¡ Pruébelo en línea!
fuente
05AB1E , 8 bytes
Pruébalo en línea!
Exactamente lo que hacen las cosas de Dennis.
Pruébalo en línea!
Las cosas de Orlp.
fuente
Mathematica, 21 bytes
Muévete, nada que ver aquí ...
fuente
Java (OpenJDK 8) , 22 bytes
Pruébalo en línea!
Desearía que Java tuviera un
**
operador de exponenciación. ¡Oh bien!fuente