- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有 K 个桶。每个桶包含一定数量的球 B,其中每个球都有一定的重量。
我想知道是否有算法可以完成以下任务:
我想一次移动一个,并以最小化所有桶中包含的最大重量的方式将一些重量从一个桶重新定位到另一个桶。我想重复这个过程,直到我通过最少的步骤实现了 Weights in Buckets 的最平衡配置。
在解决这个问题时,是否有可供引用的算法?
以下是我想到的方法:
天真:遍历桶中球的所有组合,并采用具有 min(max(所有桶的重量) 的变体。这是我的最佳配置。现在一次移动一个球,直到你达到这种配置。这可行,但无法编程,因为我们有 num_buckets^num_balls 的复杂性,如果球的数量很大,效率会很低。
Greedy Tree:从头开始,贪婪地以循环方式将球分配到各个容器中。在每次迭代中 - 将球放入具有最小最大值的容器中。这不会提供最佳平衡,但会提供更好的平衡,然后我可以一步一步来实现此配置。
这感觉像是一个问题,我有一个成本函数,并且在我的第一步有 BxK 步数。
是否有已知算法可以启发更好的解决方案? (装箱在这里不起作用,因为我有固定数量的箱子。)我不是在寻找解决方案,而是寻找解决平衡问题的算法,即使不完全相同,看起来也与此类似。
最佳答案
首先,让我们稍微限制一下贪心算法:将球按降序排列,最重的放在最前面。
之后,从最重的到最轻的处理垃圾箱。对于每个箱子,寻找一个交换或移动,以减少其重量而不会使移动的另一个箱子达到最大重量。继续此过程,直到无法再改进最重的垃圾箱。
我无法证明这是否会为您提供最佳解决方案,但它会非常好。 :-)
关于通过最少的移动次数来最小化装满球的桶的最大重量的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55171512/
我有以下查询: select ema.es_symbol as symbol, ema.score as score, ema.weight as weight, rsi.relative_stren
我有一个 ms-sql 表,看起来像这样(重量 = kg)。 我希望能够计算给定标识符所需的箱子数量和每个箱子的重量。一个盒子最多可以容纳 30 公斤。该标识符的所有项目都可以在一个框中混合。我仅限于
我正在尝试通过 PHP 将重量分配给卡车。 条件 卡车可以有不同的尺寸 可设置单辆或多辆 卡车越少越好 我有这个 class VehicleCalculation { /** * @var
如何在这段代码中引用石头的重量,以便我可以在unlockChest方法中使用它?我基本上试图将用户从对象 new Stone()) 输入的权重相加,因此它 == 组合了用户在 Chest() 构造函数
我在线性布局中使用表格布局,第一行结果很好,但连续的行完全错误,尽管设置了它们。我不确定这是否是我正在运行的 Android Studio 版本的问题,或者它是否不适用于 kotlin ...有什么办
我在平衡方面遇到了麻烦。我觉得我在这里遗漏了一些东西.. 这个问题等同于以下情况: table 上散布着各种质量的砝码。 你手里拿着几个不同质量的砝码。 如果 table 上有一组重量与您手中的重量相
我已经在 YOLOv3 中进行了超过 3 个类别的自定义检测,但是检测结果不准确,所以我想用更多图像重新训练我的自定义 YOLO 权重,但是 当我用新图像运行它时,它立即完成,我做错了什么? 这是我如
所以我需要分割字符串: Laundry Detergent 2X Ultra Free Clear 50
我使用 ClientBundle 和 CssResource 接口(interface)。所有适用于类的样式都有效: 在 CSS 中:.dialogVPanel { margin: 5px;} 在界面
我几乎是编程新手,所以这可能看起来是一个非常愚蠢的问题,我已经尝试这样做有一段时间了,但无法理解它。 但是我想知道 JList 对象是否可以存储多个值,因此当我单击列表中的对象时,不同的值(例如价格、
我想创建具有相同宽度并被拉伸(stretch)以(匹配)父按钮的按钮。我需要以编程方式来完成它。首先,我创建了一个所需状态的布局草稿(只关注按钮的绿线):
我正在尝试在 iOS 中模拟 Android android:layout_weight="1" 中的属性。 我有一个带有 7 个按钮的 View ,我希望它们都具有相同的宽度和相同的边距。在 And
我想知道使用 XmlDocument 类来处理小型 XML 文件的感觉。如果在加载XML文件的过程中,XmlDocument为所有的XML元素及其关系创建了一整套面向对象的结构,理论上对于小的xml文
给定 n 个无限容量的箱子,我想将 m 件元素装入其中(每个元素都有特定的重量),同时最小化最重箱子的重量。 这不是传统的垃圾箱包装/背包问题,其中垃圾箱的容量有限,而您试图尽量减少使用的垃圾箱数量;
过去几天我一直在学习 D3。我尝试将我所学到的所有内容简化为一个简单的 D3 示例,但我看到了标题中提到的错误。 我确信这很简单,我错过了什么? 代码: .node { fill: #c
我是一名优秀的程序员,十分优秀!