Я относительно новичок в программировании.Как видно из заголовка, мне нужен алгоритм, который позволяет мне получить ту же функцию от переменной вложенного цикла.то есть
for(..)
{ for(..){
for(..){....}
.
.
}}
Количество вложенных циклов будет варьироваться в зависимости от ввода пользователя.Я пытаюсь найти все комбинации чисел (10,9,8,7,6,5,4). Сейчас я прочитал много.Либо я не понимаю их полностью (я новичок в мире программирования), либо это не служит моей цели.Эти комбинации мне понадобятся позже при определенных расчетах, а не просто распечатывать все комбинации.Как я узнал, один из способов - использовать рекурсию.Я не понимаю это полностью.Я пытался сделать рекурсивную функцию, но с треском провалился.Это то, что я хочу
10 10 10
10 10 9
10 10 8
.
.
.
4 4 4
Число может измениться (например, 10 10 10 10, 10 10 10 9 ..). Эти комбинации должны храниться в массиве, так как они понадобятся мне для дальнейшей работы.Пожалуйста, будьте проще и комментируйте.
Предпочитаемый язык будет Java.Подойдет любой язык.Общий алгоритм настоятельно рекомендуется.PS Это не домашнее задание.
Благодаря amit.Вот рабочий код
def findcombinations(array,n,sol,tt=[]):
if (n== 0):
tt.append(sol[:])
return
for x in array:
sol.append(x)
findcombinations(array,n-1,sol,tt)
del sol[-1]
return tt
Для вызова функции используйте print(findcombinations([1,2],3,[]))