Я пытался понять рекурсию. Но я не думаю, что у меня все получилось.Рекурсия и проблема с Python
Здесь контур для моего кода:
def f():
used = [anything]
new = []
while i < something:
new.append(i)
i += 1
for i in new:
if i in used:
f()
else:
return new
Теперь, я не думаю, что я могу использовать это, потому что я не перебор и нет базового варианта. Мне нужно продолжать эту программу, пока я не получу набор значений (выбранных случайным образом), которые не используются. Какой был бы лучший способ достичь этого? Создать еще одну функцию?
Любая помощь будет принята с благодарностью.
Спасибо!
Помимо решения (рекурсивного), ваше требование продолжать проверку до тех пор, пока оно не будет использовано, может привести к бесконечной программе. Я думаю, что должны быть лучшие способы достижения вашего требования. –
Этот вопрос непонятен. Когда я добавляю значение 'used'? – DonCallisto
Вы не должны использовать рекурсию, если рекурсивная функция не будет иметь условие, которое обязательно будет достигнуто, что приведет к распаку стека. Насколько я знаю, Python не имеет оптимизации хвостовых вызовов, поэтому открытый рекурсивный вызов вроде этого является приглашением (из всех вещей) переполнения стека. –