Bir n öğeden k boyutundaki değiştirme (veya tekrarlanan kombinasyonlar) ile tüm kombinasyonları listeleyin .
Değiştirme ile kombinasyon, içindeki her öğenin de n öğesi kümesinde yer aldığı sıralanmamış bir çoklu kümedir . Bunu not et:
- Sırasız. Bu nedenle daha önce farklı bir siparişe sahip basılı bir set tekrar basılmamalıdır.
- Bu bir çoklu ayardır. Aynı öğe bir kereden fazla görünebilir (ancak zorunlu değildir). Değiştirme ile bir kombinasyon ile normal bir kombinasyon arasındaki tek fark budur.
- Setin tam olarak k elemanları olmalıdır .
Alternatif olarak, n öğesinin her birini k kez içeren multiset'in boyut- k altkümesidir .
Giriş olmalıdır ya n ve k elemanlar ilk sırada, n pozitif veya negatif olmayan tamsayılar veya n unsurlar ve k sen varsayabiliriz, n elemanlarını birbirinden farklıdır.
Çıktı , verilen setten k boyutu ile değiştirilen tüm kombinasyonların bir listesi olmalıdır . Bunları ve her birindeki öğeleri istediğiniz sırayla yazdırabilirsiniz.
Yer değiştiren kombinasyonlar oluşturan yerleşik yapıları kullanamazsınız. Ancak normal kombinasyonları, permütasyonları, tuplleri vb. Oluşturmak için yerleşikleri kullanabilirsiniz.
Bu kod golf, en kısa kod kazanır.
Misal
Input: 4 2
Output: [0 0] [0 1] [0 2] [0 3] [1 1] [1 2] [1 3] [2 2] [2 3] [3 3]