Entrada:
Tomamos dos entradas:
- Una entrada
b
con dos valores distintos:Left
yRight
. † - Y un entero positivo
n
.
Salida:
Según la entrada izquierda / derecha, mostramos cualquiera de las siguientes dos secuencias en el rango de 1-n
(en las secuencias a continuación se muestran los primeros 125 elementos):
Left:
1, 6, 7, 56, 57, 62, 63, 960, 961, 966, 967, 1016, 1017, 1022, 1023, 31744, 31745, 31750, 31751, 31800, 31801, 31806, 31807, 32704, 32705, 32710, 32711, 32760, 32761, 32766, 32767, 2064384, 2064385, 2064390, 2064391, 2064440, 2064441, 2064446, 2064447, 2065344, 2065345, 2065350, 2065351, 2065400, 2065401, 2065406, 2065407, 2096128, 2096129, 2096134, 2096135, 2096184, 2096185, 2096190, 2096191, 2097088, 2097089, 2097094, 2097095, 2097144, 2097145, 2097150, 2097151, 266338304, 266338305, 266338310, 266338311, 266338360, 266338361, 266338366, 266338367, 266339264, 266339265, 266339270, 266339271, 266339320, 266339321, 266339326, 266339327, 266370048, 266370049, 266370054, 266370055, 266370104, 266370105, 266370110, 266370111, 266371008, 266371009, 266371014, 266371015, 266371064, 266371065, 266371070, 266371071, 268402688, 268402689, 268402694, 268402695, 268402744, 268402745, 268402750, 268402751, 268403648, 268403649, 268403654, 268403655, 268403704, 268403705, 268403710, 268403711, 268434432, 268434433, 268434438, 268434439, 268434488, 268434489, 268434494, 268434495, 268435392, 268435393, 268435398, 268435399, 268435448, 268435449
Right:
1, 4, 7, 32, 39, 56, 63, 512, 527, 624, 639, 896, 911, 1008, 1023, 16384, 16415, 16864, 16895, 19968, 19999, 20448, 20479, 28672, 28703, 29152, 29183, 32256, 32287, 32736, 32767, 1048576, 1048639, 1050560, 1050623, 1079296, 1079359, 1081280, 1081343, 1277952, 1278015, 1279936, 1279999, 1308672, 1308735, 1310656, 1310719, 1835008, 1835071, 1836992, 1837055, 1865728, 1865791, 1867712, 1867775, 2064384, 2064447, 2066368, 2066431, 2095104, 2095167, 2097088, 2097151, 134217728, 134217855, 134225792, 134225919, 134471680, 134471807, 134479744, 134479871, 138149888, 138150015, 138157952, 138158079, 138403840, 138403967, 138411904, 138412031, 163577856, 163577983, 163585920, 163586047, 163831808, 163831935, 163839872, 163839999, 167510016, 167510143, 167518080, 167518207, 167763968, 167764095, 167772032, 167772159, 234881024, 234881151, 234889088, 234889215, 235134976, 235135103, 235143040, 235143167, 238813184, 238813311, 238821248, 238821375, 239067136, 239067263, 239075200, 239075327, 264241152, 264241279, 264249216, 264249343, 264495104, 264495231, 264503168, 264503295, 268173312, 268173439, 268181376, 268181503, 268427264, 268427391
¿Cómo se generan estas secuencias, preguntas?
Una secuencia predeterminada de 1 a través n=10
sería:
As integer:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
As binary:
1 10 11 100 101 110 111 1000 1001 1010
Cuando nos estiramos a la izquierda, el binario se convertirá en esto:
1, 110, 111, 111000, 111001, 111110, 111111, 1111000000, 1111000001, 1111000110
¿Por qué? El último bit se usa una vez; el single-last se usa dos veces; el penúltimo se usa tres veces; etc.
So `1010` will become (spaces added as clarification): `1111 000 11 0`
Y estas nuevas cadenas binarias estiradas a la izquierda se convierten de nuevo a enteros:
1, 6, 7, 56, 57, 62, 63, 960, 961, 966
En cuanto a la derecha extendida, el primer bit se usa una vez; segundo dos veces; tercero tres veces; etc. Así:
As binary:
1, 100, 111, 100000, 100111, 111000, 111111, 1000000000, 1000001111, 1001110000
As integer:
1, 4, 7, 32, 39, 56, 63, 512, 527, 624
Reglas de desafío:
- † Puede tomar dos valores distintos, pero indique cuál usa. Así que puede ser
1/0
,true/false
,null/undefined
,"left"/"right"
, etc. n
siempre es mayor que 0.- Debe admitir una salida máxima de al menos el entero predeterminado de su idioma (que es de 32 bits para la mayoría de los idiomas).
- El formato de salida es flexible. Se puede imprimir o devolver como matriz / lista. Puede ser con un espacio, una coma, una tubería y similares como delimitadores. Tu llamada. (Nuevamente, indique lo que ha usado).
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de código de golf lo desalienten de publicar respuestas con idiomas que no sean de código. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Se aplican reglas estándar para su respuesta, por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, agregue una explicación si es necesario.
n < 128
, de modo que los resultados se ajusten a enteros de 32 bits?