單身狗脫單演算法 脫單了算你贏

2021-08-08 14:38:40 字數 2417 閱讀 4956

比較懶,怎麼記錄方便我就怎麼來了,於是隨手貼上了

1.將男士和女士對異性好感的排序表抽象成乙個二維陣列mp和wp

2.建立兩個陣列用來記錄男士和女士是否單身,其中索引表示第幾位男士,儲存的值表示是否脫單。例如:

ismanfree[0] = true

# 表示第0位男士還是單身

3.設計男士對女士的追求表,記錄男士有沒有追過這位女士,二維表中女士表示橫軸,男士表示縱軸

ismanproposed[0][1] = true # 0號男士已經追求過1號女士
4.匹配對的儲存match,match列表中儲存的元素是乙個個元組(m,w),match的索引表示男士的id

match[0] = (0,1) #0號男士和1號女士匹配 元組中的第一位為男士,第二位是女士,且男士的id==match的索引
def

stable_match

(mp,wp):

n = len(mp)

ismanfree = [true

for i in range(n)] # 設定男士都為單身

iswomanfree = [true

for i in range(n)] # 設定女士都為單身

ismanproposed = [[false

for i in range(n)] for j in range(n)] # 設定每乙個男士對每乙個女士都沒有求過婚

match = [(-1,-1)]*n # 最後的匹配結果

while

true

in ismanfree:

indexm = ismanfree.index(true) # 獲取第乙個還是單身的男士

iffalse

in ismanproposed[indexm]: # 如果該男士還存在沒有求過婚的女士

for i in range(n):

w = mp[indexm][i]

ifnot ismanproposed[indexm][w]:

indexw = w

break

ismanproposed[indexm][indexw] = true

# 設定這位男士追求過這位女士

if iswomanfree[indexw]: # 女士還是單身

iswomanfree[indexw] = false

#開始約會了!脫單

ismanfree[indexm] = false

#脫單 match[indexm] = (indexm,indexw) #生成一組匹配

else:# 被追求的女士早就名花有主,看男士的魅力大不大了

indexm_ = -1

# 該女士的現任,先賦值為-1

for j in range(n):

if match[j][1]==indexw: # 這位女士已經名花有主,找到她的主

indexm_ = j

break

if wp[indexw].index(indexm) < wp[indexw].index(indexm_):# 在這位女士的優先列表中判斷,看後來的男士是否更加具有吸引力

ismanfree[indexm_] = true

ismanfree[indexm] = false

match[indexm] = (indexm,indexw)

print(match)

return match

deftest

(): mp = [

[0,1],

[1,0],

]wp = [

[1,0],

[0,1],

]stable_match(mp,wp)

deftest2

(): mp = [

[1,0,2],

[0,2,1],

[1,2,0],

]wp = [

[0,2,1],

[1,0,2],

[0,1,2],

]stable_match(mp,wp)

if __name__ == "__main__":

test()

test2()

單身程式媛不愁嫁,程式猿想脫單

程式設計師的感情生活似乎很容易成為人們的關注點。不論是 程式設計師是否理想結婚物件 這類 本質的問題,還是 如何俘獲程式設計師芳心 這模擬較偏方 的問題,甚至是 肯德基 穿特步相親被拒 以及 非程式設計師不嫁 一類的個案,總在不經意間就能引起廣泛而熱烈的討論。在婚戀狀況和擇偶價值觀上,程式設計師的真...

FZOJ 4112 脫單計畫

這是一道費用流的好題。首先題目給你的男士女士以及之間的關係可以看做乙個二分圖。考慮暴力連邊 用 x,y 表示流量為 x 費用為 y 的邊 然後時間複雜度是 o nmf 不能通過此題。考慮暴力連邊邊的數量是 o n 2 級別的,是否能減少連邊的數量。現在假設每個男士小區和女士小區的距離為 x1 y1 ...

珍愛網會員 社會釋放眾多脫單「利好」 我仍脫單難

脫單,已經不再只是父母的催婚緊箍咒,單身大潮的席捲,已經讓脫單問題成為社會性全民話題。近日,瀋陽某中學推出 戀愛假 鼓www.cppcns.com勵單身青年,在繁忙的教學工作之餘,積極戀愛,早日脫單。此前,不少企事業單位也推出單身聯誼活動。珍愛網情感諮詢師表示,社會各界均在釋放婚戀友好訊號,但當代年...