La mina de sal polaca más antigua , ubicada en Bochnia *, se inició en el año 1248, que podemos considerar un número mágico . Podemos ver que es igual a 4 dígitos de la secuencia de exponenciación: .
Como la fecha es en realidad 4 dígitos de la secuencia, podríamos alargarla. Podríamos repetir el proceso hasta llegar al infinito. La secuencia se vería así, si la limitamos a número2048
124816326412825651210242048
Para que se vea un poco mejor, podemos separar los números:
1|2|4|8|16|32|64|128|256|512|1024|2048
Probemos una secuencia personalizada más larga que la fecha. Digamos que queremos que tenga 5 dígitos; hay más de una posibilidad:
24816
81632
64128
O los de 3 dígitos:
124
248
816
También podríamos agregar los números de 3 dígitos a esto, pero digamos que una secuencia debe tener al menos dos números .
* No hay información sobre esto en la Wikipedia en inglés. Si ingresa la versión polaca, entonces la hay. Si visita la mina, los trabajadores también le dirán que comenzó en 1248.
El reto
Cree una secuencia de exponenciación como en los ejemplos anteriores con 2 como base.
Dado un número del rango 2-27, salida todas las partes posibles de la secuencia (la 2048 o más grande si lo desea) con una cantidad de dígitos igual a la entrada. No puede cortar un número, por lo que la salida como 481
no es válida, porque 16 se corta por la mitad.
Reglas:
- Lagunas estándar están prohibidas.
- Puede suponer que la entrada es un número dentro del rango.
- Su programa puede aceptar entradas mayores que el rango (28+), pero eso no aumentará / disminuirá la puntuación.
- Los espacios en la salida se ignoran. Puede generar like
124
o like4 8 16
. - Las diferentes posibilidades deben estar separadas por cualquier carácter de la lista:
,./|
o un avance de línea. - Se puede generar como una matriz.
- Cada posibilidad debe incluir al menos 2 números diferentes .
- Debe salida de una parte de la secuencia, no se puede mezclar números que no están uno al lado del otro, como:
14
. - La salida codificada no está permitida, sin embargo, puede codificar una cadena / número / matriz que contenga la secuencia completa.
- La entrada 27 debería devolver la secuencia completa de 2048.
- Como ya se mencionó anteriormente, no corte los números . Ex.
16
debe quedarse16
, no puede usar481
, debe usar4816
. - EDITAR: Podría haber dicho algo mal allí; 2048 es el último número que su programa debería admitir, puede agregar soporte para int's más grandes.
Casos de prueba
Entrada: 2
12, 24, 48
Entrada: 3
124, 248, 816
Entrada: 4
1248, 4816, 1632, 3264
Entrada: 5
24816, 81632, 64128
Entrada: 27
124816326412825651210242048
Y luego números ...
Si cometí un error en alguno de los casos de prueba, dígame o edite la pregunta.
Este es el código de golf , por lo que gana el código más corto en bytes.
fuente
Respuestas:
05AB1E ,
121110 bytesSoporta la secuencia hasta
2^95 = 39614081257132168796771975168
Pruébalo en línea!
Explicación
Guardado 1 byte gracias a Erik the Outgolfer
Guardado 1 byte gracias a Riley
fuente
X›
puede ser≠
Y₃Ým
ser₃Ýo
?Pyth,
22212017 bytesPruébalo en línea
Explicación
fuente
fqQlTmjkdftlT.:m^2d12
fqQlTjLkftlT.:m^2d12
Jalea ,
19 1816 bytesPuede haber una solución más corta ahora que podemos usar cualquier límite (no solo 2048), aunque este cambio en la especificación ha permitido un ahorro de un byte de esta implementación al pasar a un límite de 32768.
--yep. ..
-2 bytes gracias a Erik the Outgolfer (uso
V
para permitir el argumento correcto implícito del filtro y el ajuste): sí, es muy similar a su ineficiente ahora; ¡Vota el suyo !
Un enlace monádico que toma un número y devuelve una lista de números.
Pruébalo en línea!
¿Cómo?
fuente
V
y que va a trabajar para el 16 en lugar de 1000:⁴Ḷ2*Ẇṫ17VDL$⁼¥Ðf
.Perl 6 ,
6259 bytesPruébalo en línea!
fuente
Japt ,
22201916 bytesAdmite entrada hasta,
639
pero las brechas comienzan a aparecer en la secuencia después234
(consulte la lista completa de rangos de entrada admitidos aquí ). Emite una matriz de cadenas.Pruébalo
I
(64) podría ser reemplazado porL
(100) pero estaríamos entrando en notación científica e inexactitudes de precisión. Filtrarlos, obviamente, aumentaría el recuento de bytes y solo aumentaría la entrada máxima a736
.fuente
Python 2 , 105 bytes
Pruébalo en línea!
fuente
Casco ,
1817 bytesLa salida está separada por líneas nuevas
Pruébalo en línea!
¿Cómo?
fuente
Jalea , 16 bytes
Pruébalo en línea!
Nota: muy ineficiente. Devuelve una lista de números.
fuente
ȷ
s (es decir1000
) con20
s (límite superior inferior) .[12, 24, 48]
.JavaScript (ES7),
102100 bytesImprime todas las subsecuencias coincidentes con
alert()
.Manifestación
NB : este fragmento almacena los resultados y los imprime en la consola para facilitar su uso.
Mostrar fragmento de código
fuente
Haskell ,
7267 bytesPruébalo en línea!
Guardado 5 bytes gracias a Laikoni
Usé un límite de
99
porque2^99
tiene una longitud> 27
.fuente
length$(show$2^44)++(show$2^45)==28
.Mathematica, 122 bytes
Entrada
Salida
fuente
C, 170 bytes
Pruébalo en línea!
Desenrollado:
fuente
R , 99 bytes
Pruébalo en línea!
fuente
Perl 5 , 76 bytes
75 bytes de código + 1 para
-a
Pruébalo en línea!
fuente
Japt, 24 bytes
Después de mucho tiempo desde que publiqué esta pregunta, aprendí mi primer idioma de golf. Debido a esto, decidí probar suerte aquí.
Pruébalo en línea!
La puntuación no es la mejor, ni siquiera es buena, pero me llevó mucho tiempo hacer esto.
Pierdo mucho puntaje, porque por alguna razón, ã solo puede devolver matrices de longitud x ... Podría ser incluso ~ 10 bytes, si no es así.
Explicación:
fuente
Ruby , 94 bytes
Pruébalo en línea!
fuente