Questions tagged «knapsack-problem»


2
根据字段获取大型对象列表的最有效组合
我希望在给定预算和组合上限的情况下,最大限度地增加星级。 问题示例: 用500欧元的预算,只参观允许的最大餐厅或以下,就餐并收集尽可能多的星星。 我正在寻找一种有效的算法,该算法可以处理最多100个最大餐厅的100万个餐厅实例。 注意,这是我昨天问的一个问题的交叉发布: Java:基于字段获取大型对象列表的最有效组合 下面的解决方案将为r8餐厅分配每颗星15美元的价格,这意味着在生成列表时,它将首先放入列表中,而剩下的70美元只能再获得2颗星,总共4颗星。但是,如果明智的做法是跳过r8餐厅(即使这是每星级最高的美元),那么r1餐厅实际上是预算的更好选择,因为这是100美元的费用和5星的价格。 任何人都可以帮助解决问题并超越当前的解决方案吗? import itertools class Restaurant(): def __init__(self, cost, stars): self.cost = cost self.stars = stars self.ratio = cost / stars def display(self): print("Cost: $" + str(self.cost)) print("Stars: " + str(self.stars)) print() r1 = Restaurant(100, 5) r2 = Restaurant(140, 3) r3 = Restaurant(90, 4) …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.