n個の要素のセットから、サイズkの置換(または繰り返しの組み合わせ)のあるすべての組み合わせをリストします。
置換との組み合わせは、その中のすべての要素がn個の要素のセットにも含まれる、順序付けされていないマルチセットです。ご了承ください:
- 順不同です。したがって、異なる順序で以前に印刷されたセットは、再度印刷されません。
- マルチセットです。同じ要素を複数回表示できます(必須ではありません)。これは、交換との組み合わせと通常の組み合わせの唯一の違いです。
- セットは正確にk個の要素を持つ必要があります。
代わりに、それはn個の要素のそれぞれをk回含むマルチセットのサイズkのサブセットでもあります。
入力がなければならないのいずれかのn及びkの要素が最初であり、nは正または負でない整数、またはn個の要素及びKあなたが引き受けることができる、n個の要素は、互いに全て異なっています。
出力は、指定されたセットのサイズkで置き換えられたすべての組み合わせのリストである必要があります。それらと各要素の要素を任意の順序で印刷できます。
置換を伴う組み合わせを生成するビルトインは使用できません。しかし、組み込みを使用して、通常の組み合わせ、順列、タプルなどを生成できます。
これはコードゴルフで、最短のコードが勝ちます。
例
Input: 4 2
Output: [0 0] [0 1] [0 2] [0 3] [1 1] [1 2] [1 3] [2 2] [2 3] [3 3]