当前位置: 首页 > 编程笔记 >

通过在Python中复制多个副本来查找背包问题的最大值的程序

慕佑运
2023-03-14
本文向大家介绍通过在Python中复制多个副本来查找背包问题的最大值的程序,包括了通过在Python中复制多个副本来查找背包问题的最大值的程序的使用技巧和注意事项,需要的朋友参考一下

假设我们有两个长度相同的列表,它们称为权重和值,并且我们还有另一个值容量。这里weights [i]和values [i]代表第i个项目的权重和值。如果我们最多可以使用容量权重,并且每个项目可以复制任意数量的副本,则必须找到可以获取的最大值。

因此,如果输入就像权重= [1、2、3],值= [1、5、3],容量= 5,那么输出将为11

为了解决这个问题,我们将遵循以下步骤-

  • 定义一个功能dp()。这需要我,k

  • 如果我与重量的大小相同,则

    • 返回0

  • ans:= dp(i + 1,k)

  • 如果k> = weights [i],则

    • ans:= ans和dp(i,k-weights [i])+ values [i]的最大值

  • 返回ans

  • 从主要方法中执行以下操作-

  • 返回dp(0,容量)

让我们看下面的实现以更好地理解-

示例

class Solution:
   def solve(self, weights, values, capacity):
      def dp(i, k):
         if i == len(weights):
            return 0
         ans = dp(i + 1, k)
         if k >= weights[i]:
            ans = max(ans, dp(i, k - weights[i]) + values[i])
         return ans
      return dp(0, capacity)
ob = Solution()weights = [1, 2, 3]
values = [1, 5, 3]
capacity = 5
print(ob.solve(weights, values, capacity))

输入项

[1, 2, 3], [1,5,3], 5

输出结果

11
 类似资料:
  • 本文向大家介绍在Python中的每个子列表中查找最大值,包括了在Python中的每个子列表中查找最大值的使用技巧和注意事项,需要的朋友参考一下 我们得到一个列表列表。在内部列表或子列表中,我们需要在每个列表中找到最大值。 与最大和 我们设计一个带in条件的for循环,并应用max函数来获取每个子列表中的最大值。 示例 输出结果 运行上面的代码给我们以下结果- 带映射和最大 在遍历子列表时,我们继续

  • 问题内容: 我知道标题听起来描述性不强,但这是我能想到的最好的: 我有这张桌子 实际上,这是封装在视图中的非常复杂的查询,但现在已不再重要。 我想为每个ID包含最高BDate的行。在此示例中,这将是结果。 我已经尝试过 但随后它返回所有行,因为对于每个值,列均不同。该查询是在Oracle v10中设计的,我有资格仅使用选择查询而不创建过程。 问题答案: 我们可以在IN子句中使用乘法列:

  • 本文向大家介绍在Python中实现分数背包问题的程序,包括了在Python中实现分数背包问题的程序的使用技巧和注意事项,需要的朋友参考一下 假设我们有两个列表,权重和相同长度的值,以及另一个值容量。权重[i]和值[i]表示第i个元素的权重和值。因此,如果我们最多可以采用容量权重,并且可以按比例取值,则占项目权重的一小部分,则必须找到可以得到的最大值(四舍五入为最接近的整数) 因此,如果输入像权重=

  • 本文向大家介绍C#程序查找三个数字中的最大值,包括了C#程序查找三个数字中的最大值的使用技巧和注意事项,需要的朋友参考一下 首先,让我们设置三个数字- 现在检查第一个数字和第二个数字。如果num1> num2,则用num3检查num1。如果num1大于num3,则表示最大数量为num1。 示例 您可以尝试运行以下代码来查找三个数字的最大值。 输出结果

  • 我很难理解下面的代码是如何在字典中找到最大值的键的。我知道第一个参数返回键列表。但我没有得到第二个参数..帮帮我

  • 问题内容: 我有一个类似于下面的多维数组。我试图实现的是一种从数组中查找和获取“ Total”值最高的数组的方法,现在我知道有一个称为的函数,但不适用于像这样的多维数组。 我想做的是创建一个foreach循环并仅使用总数构建一个新数组,然后使用它来找到最大值,这将起作用,唯一的问题是检索与此相关的其余数据最大值。我不确定这也是最有效的方法。 有任何想法吗? 问题答案: 从PHP 5.5开始,您可以