Python 我需要使用装箱算法还是背包?

Python 我需要使用装箱算法还是背包?,python,algorithm,dynamic-programming,knapsack-problem,bin-packing,Python,Algorithm,Dynamic Programming,Knapsack Problem,Bin Packing,以下是问题陈述: 我有m块巧克力,长度为整数,还有n个孩子 我想要整份的巧克力。巧克力的总需求量在哪里 孩子们少于或等于巧克力的总量 你有。您需要编写一个算法,将巧克力分发给 孩子们通过在栏杆上切最少的口子来学习 例如,对于M={1,3,7},N={1,3,4},最少的切割数为1 我没有任何算法方面的正式经验,有谁能给我一些提示,告诉我应该开始阅读什么才能有效地解决这个问题?这个任务可以简化为解决几个背包问题。为了解决这些问题,通常采用贪婪搜索原理,而割数是搜索的标准 算法的第一个明显步骤是检查

以下是问题陈述:

我有m块巧克力,长度为整数,还有n个孩子 我想要整份的巧克力。巧克力的总需求量在哪里 孩子们少于或等于巧克力的总量 你有。您需要编写一个算法,将巧克力分发给 孩子们通过在栏杆上切最少的口子来学习

例如,对于M={1,3,7},N={1,3,4},最少的切割数为1


我没有任何算法方面的正式经验,有谁能给我一些提示,告诉我应该开始阅读什么才能有效地解决这个问题?

这个任务可以简化为解决几个背包问题。为了解决这些问题,通常采用贪婪搜索原理,而割数是搜索的标准

算法的第一个明显步骤是检查平衡。 第二步是排列所需的条状和巧克力,这将简化进一步的计算。这实现了贪婪搜索的原理。 第三个明显的步骤是找到并使用所有的钢筋,其尺寸符合需要

下一步是找到并使用满足需求的所有钢筋组合。此任务需要按需求降序进行“贪婪”搜索,这将在进一步的计算中继续进行。这个标准不是最优的,但它允许形成一个基本的解决方案

如果不是所有的孩子都吃过巧克力,那么削减就变得明显了。搜索应根据瓷砖的下降尺寸进行。首先,你应该检查所有的可能性,一次给两个孩子切割瓷砖,然后相同,但如果一个现有的瓷砖使用,等等。     在此之后,有一个明显的变体“一次切割-一个需求”,允许形成基本变体。但如果还有计算资源,可以首先使用它们来计算“两条缝-三个需要”等类型的选项


进一步优化包括返回步骤并计算以下变量。

此任务可简化为解决几个背包问题。为了解决这些问题,通常采用贪婪搜索原理,而割数是搜索的标准

算法的第一个明显步骤是检查平衡。 第二步是排列所需的条状和巧克力,这将简化进一步的计算。这实现了贪婪搜索的原理。 第三个明显的步骤是找到并使用所有的钢筋,其尺寸符合需要

下一步是找到并使用满足需求的所有钢筋组合。此任务需要按需求降序进行“贪婪”搜索,这将在进一步的计算中继续进行。这个标准不是最优的,但它允许形成一个基本的解决方案

如果不是所有的孩子都吃过巧克力,那么削减就变得明显了。搜索应根据瓷砖的下降尺寸进行。首先,你应该检查所有的可能性,一次给两个孩子切割瓷砖,然后相同,但如果一个现有的瓷砖使用,等等。     在此之后,有一个明显的变体“一次切割-一个需求”,允许形成基本变体。但如果还有计算资源,可以首先使用它们来计算“两条缝-三个需要”等类型的选项


进一步优化包括返回步骤并计算以下变量。

欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南。在这里申请。StackOverflow不是设计、编码或教程服务。m&n有多大?@shole、m和n可以是任意大小,但巧克力总量始终大于或等于儿童的总需求欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南。在这里申请。StackOverflow不是设计、编码或教程服务。m&n有多大?@shole,m和n可以是任意大小,但巧克力的总量始终大于或等于孩子的总需求。这很好地反映了我的想法,谢谢你的回复。这很好地反映了我的想法,谢谢你的回复。