2011-12-20 19 views
0

所以我有一組用戶,希望得到1項,但他們可以做出3個願望,按照他們想要的多少排序。 但是,所有用戶都可以獲得一件物品的次數是有限的。最後,每個人都應該(可能)獲得他最希望的物品。公平地分發有限數量的東西,他們需要多少

我已經試圖將希望項目X的每個用戶添加到「許願者」列表中,如果此列表小於可用數量,則每個人都可以得到它。問題是這不尊重有人喜歡這個項目,如果可用項目的數量更大。

我相信可能已經有一個數學問題試圖解決這個問題。

回答

1

假設你有100個蘋果,香蕉,胡蘿蔔

,讓我們假設你有300人,誰排在了三個選擇。

一個簡單的算法就是先嚐試並滿足每個人的首選。所以我們假設300人的第一選擇是:150個蘋果,120個香蕉,30個胡蘿蔔。如果可用物品的數量少於所需數量,每個人都會得到一個。否則隨機分配。

所以在上面的例子中,您可以完成230人的首選。

然後通過第二個(然後第三個)剩下的人的選擇和重複。

相關問題