Dado un entero positivo n, genera las 2^nsecuencias binarias de longitud nordenadas en el siguiente orden preciso.
Casos de prueba:
0:
0 or 1 (defining this is a matter of debate)
1:
0
1
2:
00
01
10
11
3:
000
001
010
100
011
101
110
111
4:
0000
0001
0010
0100
1000
0011
0101
1001
0110
1010
1100
0111
1011
1101
1110
1111
etc.
Además, el patrón de combinatoria está relacionado con el Triángulo de Pascal.
0:
1 (this is given regardless of the definition given to 2^0)
1:
1
1
2:
1
2
1
3:
1
3
3
1
4:
1
4
6
4
1
etc.
code-golf
combinatorics
binary
desarmar
fuente
fuente

Respuestas:
Haskell, 78 bytes
Ejemplo de uso:
f 2->[[0,0],[0,1],[1,0],[1,1]].Cómo funciona:
fuente
Preludepor<$yData.ListparasortOn). Además: mi código no es un programa completo, por lo que no se compilará.sortOn. Voy a extrañarsortBy (compare `on` f).Python 2, 146 bytes
Todavía estoy trabajando en esto, ¡aunque cualquier sugerencia sería muy apreciada!
Sin golf
fuente
from itertools import*y luego simplemente usarpermutationsen la lambda. ahorra 1 bytePython 2,
12212010298 bytes18 bytes guardados gracias a Flp.Tkc
4 bytes guardados gracias a xnor
Explicación
Esto hace que todas las cadenas binarias de longitud x con:
Luego los clasifico según:
sorted(x)prioriza el número de1s mientrasint(x[::-1],2)prioriza la segunda condiciónPor último, estos se unen con líneas nuevas y se imprimen.
fuente
Perl, 63 bytes
-4 gracias a @Ton Hospel.
-2 gracias a @Gabriel Benamy.
Ejecutar con
-E(que habilita la funciónsay):Explicaciones cortas :
"{1,0}"x$_crea una cadena compuesta de$_veces{1,0}($_es la entrada). Por ejemplo, con3:{1,1}{1,0}{1,0}.globhace algo de magia y genera todas las combinaciones de un elemento de cada grupo de llaves (es decir, todas las combinaciones que queremos imprimir).$b=~y/1//c-$a=~y/1//ccompara el número de1en cada cadena, y si tienen el mismo número,$b-$ase ordenará de acuerdo con la segunda regla.fuente
y/1//cay/0//ambas vecesy///c!<=>por-Perl,
116106105102 bytesLegible:
La subrutina
econvierte su argumento en un valor binario, rellenado con ceros, para que sea la longitud de entrada (por ejemplo, entrada de 5 pads con ceros hasta que tenga 5 caracteres de longitud). La subrutinaftoma un valor binario de este tipo y le otorga un peso de clasificación de acuerdo con cómo debe procesarse.El rango 0 .. [input] 2 -1 se coloca en una clasificación estable, ordenando por el peso (aquí, "estable" significa que cuando dos valores tienen el mismo peso, se devuelven en el mismo orden en que aparecen en el entrada), y luego se retroalimentan a la subrutina
ey salida.Algunos de ustedes pueden haber visto mi publicación original, pero ayer entendí mal el problema y lo eliminé inmediatamente después de darme cuenta.
fuente
n>=5. Por ejemplo, withn>=5,01101viene antes10011pero debería ser después.Raqueta 109 bytes
Sin golf:
Pruebas:
Salida:
fuente
Ruby 2.x, 129 bytes
fuente
PHP, 49 bytes
Corre con
-r.fuente
MATLAB, 68 bytes
fuente
Bash, 65 bytes
Golfed
Prueba
fuente
Jalea , 14 bytes
Pruébalo en línea!
Sorprendido, esto no había sido publicado todavía.
fuente