Мне нужно найти все возможные комбинации, берущие k из n чисел с повторяющимися, без дубликатов. Например, число '[1, 2, 3]' с результатом 2 должно быть
1 1
1 2
1 3
2 3
2 2
3 3
Когда я вызываю основные функции, я объявляю только массив arr = [ 1 3 5 ] n = 3(size of arr) r = 2
Я получаю: " Outпамяти. Вероятной причиной является бесконечная рекурсия в программе.":
function combs(arr, n, r)
chosen = zeros(1, r+1, 'int8');
repeat(chosen, arr, 1, r, 1, n);
end
function repeat(chosen, arr, index, r, start, ends)
if(index == r)
for i = 1:r
arr(chosen(i))
end
end
for i = start:ends
chosen(index) = i;
repeat(chosen, arr, index, r, i, ends)
end
end