フィールドに基づいてオブジェクトの大きなリストの最も効率的な組み合わせを取得します
特定の予算と組み合わせの上限を考慮して、星の数を最大化しようとしています。 質問の例: 500ユーロの予算で、許可された最大数以下のレストランのみを訪れ、食事を取り、可能な限り多くの星を集めます。 最大10個のレストランの100万のRestaurantインスタンスを処理できる可能性のある効率的なアルゴリズムを作成しようと思っています。 これは私が昨日質問した質問のクロスポストです: Java:フィールドに基づいてオブジェクトの大きなリストの最も効率的な組み合わせを取得してください 以下の解決策では、r8レストランにスターごとに15 $を割り当てます。つまり、リストを生成するとき、リストに最初にそれを入れ、残りの70 $では、さらに4つ星を与える2つだけのスターを取得できます。ただし、r8レストランをスキップするのに十分なほど賢い場合は(星あたりの最高のドルの比率ですが)、r1100ドルのコストと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 = …