【发布时间】:2018-12-18 14:28:05
【问题描述】:
我正在尝试解决递归练习并感到非常困惑。 问题如下:
假设我有一个 n 平方米的公寓, i = [1,2,3..., n] 是平方米的单位,[p1, p2, p3, ..., pn] 是对应的每平方米价格(例如 p1 是1平方米,pn是n平方米的价格)。
我想找到分配我的公寓的最佳方式,这会给我带来“最大的收入”。
示例 - 如果我有 4 平方米的公寓,并且尺寸 1、2、3、4 的价目表对应的是 [1、5、8、9],那么这些是选项集:
- 将公寓作为一个 4 平方米的单位(价值:9)
- 将4平方米分成1、1、1、1平方米(总值:4)
- 将4平方米分成1、1、2平方米(总值:7)
- 将4平方米分成2,2平方米(总值:10)
- 将 4 平方米分成 1,3 平方米(总值:9)
因此我的函数“profit”应该为输入返回数字 10: 利润([1,5,8,9], 4)
我被要求使用以下模式解决这个问题,其中递归调用必须仅在循环内:
def profit(value, size):
...
for i in range(size):
...
return ...
在很长一段时间后,我设法在没有循环条件的情况下解决了这个问题,但这真的让我很沮丧,递归函数是多么困难和不直观。 对于此类问题,我真的很感激一般指导提示,或者即使您可以将我推荐给其他可能有助于我更好地学习该主题的资源。有时我很难跟上。
当然,感谢您对这个特定功能的帮助...
【问题讨论】:
标签: python python-3.x loops recursion