я в настоящее время быть_наст рекурсивного Однострочник использующего список пониманиеConcatenation ошибки в рекурсивной функции со списком пониманием
def f(n):
return 1 if n == 1 else min([2 * f(n - x) + (2 ** x) - 1 for x in range(1, n)])
Как вы можете видеть, что это возвращает минимальный Int из списка Интса генерируемого с помощью функций диапазон (1 < = х < п), однако я хотел бы этот список понимание вернуть минимальный кортеже следующим образом:
def f(n):
return 1 if n == 1 else min([(2 * f(n - x) + (2 ** x) - 1, x) for x in range(1, n)])
так что я могу увидеть, где х значение минимальное значение принадлежит, однако, если я это он ген ставки следующее сообщение об ошибке:
builtins.TypeError: can only concatenate tuple (not "int") to tuple
И я не могу понять, ни увидеть, где она пытается сцепить в Int, несмотря на мои попытки при отладке и разработке подобных функций (нерекурсивна но они работают). Есть ли у кого-нибудь идеи о том, почему это происходит и как я могу это исправить?
Гоша, конечно, это должно было быть большим недоверием. В любом случае, мне удалось заставить его работать, спасибо! – user3251435