**
今天讀到策劃同學的週報中提到的乙個關於合租房子的分攤房租問題。
引用週報中的一節如下:
上週在搬家,和喵、劉陽一起租房子住,遇到乙個問題,就是分攤房租。中式的解決方法一般都是商量一下,但具體怎麼商量,沒有手段,總之就是大家估摸一下,覺得大略上說的過去就ok了。很少有拉下面子認真談**的,即使心裡其實覺得並不認可。
在這方面,美國人還真能想一些辦法,這是乙個旅美的留學生在部落格上寫的,他和老美同學的商議方式: 兩個人a,b合租乙個二居的房子,比如每個月是1500美元,因為主臥和次臥有大有小,**肯定是不均的,那麼兩個人分別寫兩個**,也就是對主臥和次臥的心理**。可以很極端,比如1400:100,但總額必須是1500,因為這是a,b必須接受的大條件,然後公開,除掉開價完全相當的情況,兩間臥室必然各有乙個出價最高的人,價高者入住,而月租則是a,b對這個臥室開價的均值。例如a出價是900:600,b出價是1000:500,那麼a住次臥,**為550,b住主臥,**為950。兩個人都得到了自己認可的房子,而**還低於自己的預期。
這一方案還有乙個優勢,就是雙方都無法通過惡意的叫價來損害對方,獲得利益。相信很多同學會提出乙個更直接的解決方案:乙個人提**方案,另乙個人選擇。但是這一方案也有點問題,提**的人相對是吃虧的,對吧?
遺憾的是,這種做法,似乎無法推廣到三個人的情況。
我覺得這個問題很有趣,晚上想了一下,其實是可以推廣到三人甚至更多人的。
先說這個原始策略為什麼讓雙方都感覺合理:
從經濟學角度看,每個人都希望別人多分攤一些房租。你對乙個房間了價值有乙個評估,如果別人高於這個**租下這個房間,對你就是有利的。原始方案正是如此,讓雙方都覺得最終方案對自己有利。我們基於這個基礎來推廣這個方案就可以了。
首先, 兩個人對兩間房間的分配策略,原始策略已經做的很好了。我們要做的僅僅是把三個人分三間房劃簡到兩個人分兩間房的問題。(其中不考慮競價相同的問題。原始方案也沒給出解決方案,可以重新來一次,也可以投骰子等。)
對三人策略,我的方案是: 三個人分別寫下自己想要哪一間房間,並想對這個房間出多少價。
結果有三種 :
三個人對同乙個房間競價。這種情況比較好解決,我們直接讓出價最少的人出局。然後出價最高的人得到這間房間,其**是前兩個價位的平均值。 接下來的問題就回到了兩個人選兩個房間的問題了。
有兩個人對同乙個房間競價,另乙個人選了別的房間。這種情況也好解決,直接讓選相**間的兩人中價高者得,**是兩者平均值。
三個人各選了不同的房間。這種情況不太好處理,下面仔細分析。
假設 甲 選了 1 號房間,給出了** a ;乙選了 2 號房間,給出了** b ; 丙選了 3 號房間,給出了** c 。
我們先去掉 a b c 中絕對值最小值, 比如是 c 。 保留 1 號房間的 a **和 2 號房間的 b **。
其實可以這樣看:甲和乙一起傾向於用 a+b 的**租 1 2 號房間。那麼他們集體對 3 號房間的估價是總價 - a - b 。
有很少的情況, 這個估價會變成負數。如果碰到了, 我認為可以簡單的認為是甲和乙對 3 號房間的估價為 0 。
之後,就可以按均價原則定出 3 號房間的**為 c 與 (總價 - a -b) 的平均值,並以這個**租給 c 。
剩下的又變成了兩個人分配兩間房的問題了。 :)
補充:有同學認為,如果 a+b+c 低於總價的時候,case 3 會使得 c 最終**超過他的預期,不太合理。
我認為這是合理的。因為大家可能都想用**得到好的房間;也可能由於經濟原因,希望盡量少分攤房租而傾向住不那麼好的房間。
當 a+b+c 低於總價的情況發生時,往往是後一種情形。(否則,多數人會出高於均價的**)
當所有人都出低價的時,出最低價的人應該承擔略高的價位,這是你在出很低**的時候要考慮的後果。也就是惡意出不合理的**,傷害的是自己而不是別人。
宿舍分配問題
宿舍分配 程式檔名 school.cpp school.pas 乙個很有名的大學 nku裡有不少的教學樓和宿舍樓。學校為了學生們的切身利益著想,希望能有乙個好的分配方案,使得每天早上學生們去上課所要走的路程總和最小。為了簡化問題,我們假設 1.每個教學樓都屬於乙個學院,而且每個學院只有乙個教學樓 2...
工作分配問題
問題 設有n件工作分配給n個人,將工作i分配給第j個人所需的菲傭為cij,試設計乙個演算法,為每乙個人分配一件不同的工作,並使總費用達到最小。輸入 第一行有乙個正整數n,接下來n行,每行n個數,表示工作費用。輸入 最小總費用 例子 輸入 3 10 2 3 2 3 4 3 4 5 輸出 9 inclu...
記憶體分配問題
乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結 構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構 中的堆是兩回事,分配方式倒...