Re: [請益] 學測分發規則

看板SENIORHIGH作者 (福類許)時間11年前 (2013/04/20 18:52), 編輯推噓10(1004)
留言14則, 13人參與, 最新討論串2/2 (看更多)
剛剛看到這個問題覺得很有趣,在臉書上發動態和朋友們聊了一下,整理之後放上來。 這個問題叫做「穩定婚姻問題」,英文叫做Stable Marriage Problem。 中文維基:http://tinyurl.com/bnpvrh9 英文維基:http://tinyurl.com/ccs6nak 並且,在英文維基當中有提到其中一種情況會使分發結果超過一組解。 另外,我的朋友給了一個連結: http://ip194097.ntcu.edu.tw/iug/ungian/chokphin/Hoagu/hunhoat/hunhoat.htm 是一篇十幾年前關於考試分發入學演算法的論文,大家可以參考一下。 接下來大致上描述一下演算法的跑法: 1. 假設所有人的第一志願錄取。 2. 將所有超額的校系放入佇列。 3. 每次取出佇列裡的元素,將超額的校系最低分者取出,將其志願退後,並且如果他的 新志願超額,則將新志願放入佇列中。 對於各校系的最低分我們可以用Heap去做維護。 假設一個人最多可以填N個志願、共M個考生、每個校系的正備取人數和是K,我們可以得 到這個演算法的時間複雜度是O(NMlogK),其中logK是以2為底的對數。 以102年的狀況來說,N=6,M估計為150000(應該會比較小),K假設200好了,計算出來的 結果應該可以在1秒之內就跑出來,比論文中的13秒快上許多(科技在進步)。 至於非唯一解的情況,好像是要以分發委員會的程式為主,我不知道正備取的假設會不會 使穩定婚姻問題變成唯一解。 ※ 引述《skgg (陳帥)》之銘言: : 問題是:正取的科系如果志願序排很後面是否仍保證會上 : 如果是的話感覺很容易互卡產生矛盾啊... : 有請確定的人回答一下<(_ _)> 如果依照這種思維的話,不可能出現前面備取沒上,後面正取也沒上的情況。 可以這樣思考: 1.假設現在前面備取都沒有上,考慮正取 2.正取校系超額,丟進佇列 3.佇列非空,取出佇列內元素 4.考慮該校系剔除最低分者(這裡的最低分者一定不可能是正取者) 5.更新為正取 這樣就可以避免掉skgg問的這個問題了 如果有敘述不清或是錯誤的地方還請板上大大幫忙修正。 小弟今年順利錄取台大資管了,祝全國考生同胞大學考試順利! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.44.9

04/20 19:35, , 1F
推XD
04/20 19:35, 1F

04/20 22:31, , 2F
有點強大
04/20 22:31, 2F

04/20 22:34, , 3F
Heap 推推~修完資結就沒再碰了XD
04/20 22:34, 3F

04/20 23:16, , 4F
罩!!!<(_ _)>
04/20 23:16, 4F

04/21 00:44, , 5F
我想問說,如果第一志願是備取,但機會不大,那第二
04/21 00:44, 5F

04/21 00:45, , 6F
志願填其他間的正取,第一沒上的話第二是否穩上?
04/21 00:45, 6F

04/21 03:11, , 7F
樓上 是的 有正取一定可上
04/21 03:11, 7F

04/21 08:10, , 8F
推~~ 大致解開我的疑惑了
04/21 08:10, 8F

04/21 08:13, , 9F
有正取有填 一定可以上
04/21 08:13, 9F

04/21 09:08, , 10F
喔喔!原來如此!正取的隨時想要都可以把別人擠掉!
04/21 09:08, 10F

04/21 14:23, , 11F
推 m(_ _)m
04/21 14:23, 11F

04/22 19:41, , 12F
還真有人開帖講演算法了XDDD推推推!!!
04/22 19:41, 12F

04/25 23:33, , 13F
推 這篇根本就出現超多強者啊XD
04/25 23:33, 13F

09/11 13:51, , 14F
有點強大 https://daxiv.com
09/11 13:51, 14F
文章代碼(AID): #1HSdDUAW (SENIORHIGH)
討論串 (同標題文章)
文章代碼(AID): #1HSdDUAW (SENIORHIGH)