Énumérez toutes les combinaisons avec remplacement (ou combinaisons avec répétition) de taille k à partir d'un ensemble de n éléments.
Une combinaison avec remplacement est un multiset non ordonné dont chaque élément est également dans l'ensemble de n éléments. Notez que:
- Ce n'est pas ordonné. Par conséquent, un ensemble précédemment imprimé avec un ordre différent ne doit plus être imprimé.
- Il s'agit d'un multiset. Le même élément peut (mais n'est pas requis) apparaître plusieurs fois. C'est la seule différence entre une combinaison avec remplacement et une combinaison normale.
- L'ensemble doit avoir exactement k éléments.
Alternativement, c'est également un sous-ensemble taille- k du multiset qui contient chacun des n éléments k fois.
L'entrée doit être soit n et k , où les éléments sont les n premiers entiers positifs ou non négatifs, soit les n éléments et k , où vous pouvez supposer que les n éléments sont tous différents les uns des autres.
La sortie doit être une liste de toutes les combinaisons avec remplacement de taille k de l'ensemble donné. Vous pouvez les imprimer et les éléments dans chacun d'eux dans n'importe quel ordre.
Vous ne pouvez pas utiliser de combinaisons génératrices intégrées avec remplacement. Mais vous pouvez utiliser des fonctions intégrées pour générer des combinaisons, permutations, tuples normaux, etc.
C'est le code-golf, le code le plus court gagne.
Exemple
Input: 4 2
Output: [0 0] [0 1] [0 2] [0 3] [1 1] [1 2] [1 3] [2 2] [2 3] [3 3]