Haga un código que tome una lista y un número como entrada, y genere todas las combinaciones posibles con la longitud del número. Por ejemplo, con la lista {0,1} y el número 2 :
00
01
10
11
Su programa no tiene que esperar caracteres dos veces o más a menudo en la lista, como {0,0,0,0,0,1,1,5,5}
Asegúrese de imprimir las combinaciones ordenadas, en el orden de la lista:
Con la lista {0,1} y el número 5 (generado por parte de mi código, que es demasiado largo para ganar):
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111
Pero con la lista {1,0} y el número 2 :
11
10
01
00
Como puede ver, la lista inversa significa el orden inverso.
Echa un vistazo a la estructura, es como un árbol.
Este es el código de golf, por lo que gana el código más corto en bytes

Respuestas:
Jalea , 1 byte
TryItOnline
Átomo incorporado de potencia cartesiana, como un enlace diádico con argumento izquierdo los elementos y argumento derecho el recuento, o como un programa completo con primer argumento los elementos y segundo argumento el recuento.
fuente
Haskell, 20 bytes
Ejemplo de uso:
replicaterealizancopias del segundo parámetro ymapM idconstruye las combinaciones. Por cierto,mapM ides lo mismo quesequence, pero 1 byte menos.fuente
MATL , 2 bytes
El poder cartesiano ...
Pruébalo en línea!
fuente
Pyth, 2 bytes
Un programa que toma datos en el formulario
list,numbere imprime una lista de listas.Banco de pruebas
Cómo funciona
fuente
Perl 6 , 15 bytes
Explicación:
fuente
JavaScript (Firefox 30+), 55 bytes
Estoy 99% seguro de que la recursión es la mejor manera de hacerlo en JavaScript.
fuente
Perl, 30 bytes
28 bytes de código +
-nlbandera.Para ejecutarlo:
Creo que tomar la entrada como una lista de números es lógico para Perl. Sin embargo, si permitimos algo de fantasía y tomamos la entrada con los corchetes y la coma (como se muestra en la pregunta), podemos bajar a 20 bytes :
Explicaciones:
globel propósito inicial en Perl es enumerar e iterar a través de los nombres de archivo, pero cuando su argumento contiene llaves, genera combinaciones formadas por un elemento de cada grupo de llaves.-aautosplit en espacios la entrada, y poner el resultado dentro de la@Fmatriz.$"es el separador de lista: es el separador insertado entre los elementos de una lista dentro de una cadena. Lo configuramos en,, entonces"{@F"}produce{.,.}(si@Fcontiene 0 y 1).Entonces
xes el operador de repetición de cadena (y<>obtiene una línea de entrada).Y finalmente,
say forrecorre la lista generada porglobe imprime los elementos.fuente
Mathematica, 6 bytes
Aún peor que Jelly :(
Uso
fuente
Python, 57 bytes
repl.it
Función sin nombre que toma una lista de objetos
oy un recuento,ny devuelve una lista de las combinaciones.fuente
Pure Bash, 36
Entrada por parámetros de línea de comandos: la lista es una lista separada por comas entre llaves, por ejemplo:
Tenga en cuenta que la lista de entrada debe citarse para que el shell de llamada no la expanda demasiado pronto.
Ideone .
fuente
bash a.sh "{0,1}" 2->{0,1}{0,1}(versión 4.4.5 (1) -release)R ,
5345 bytesPruébalo en línea!
revestá ahí para cumplir con el orden de clasificación preciso solicitado (que realmente no parece esencial para el problema) y agrega 5 bytes.fuente
revpor 45 bytes :)Raqueta 123 bytes
Sin golf:
Pruebas:
Salida:
fuente
PHP, 109 bytes
Toma la longitud como primer argumento y la lista como cualquier otro argumento.
Usar como:
Se ejecutará un error fatal "sin memoria" si se le solicita la longitud 0.
fuente
05AB1E ,
21 bytes-1 byte gracias a @Enigma .
Pruébalo en línea.
Entrada como
number\nlist, salida como lista de listas.Explicación:
fuente
Iaquí.Iporque inicialmente estaba tratando de descubrir cómo tener múltiples entradas y tuve el número y la lista invertidos. Bastante estúpido para mantener elIallí ... ¡Gracias!