眾所周知,“相親”可謂是現代社交的一種方式,如今隨著科技的發展,越來越多的人開始使用程序幫忙“相親”,那么Python相親程序題又是怎樣的呢?
# 需求 # 一個男生和n(n>=3)個女生相親,每個女生有三項特征(如顏值、性格、家境等),男生將其分別打分為整數,分值范圍在[1,100]之間,求男生與某個女生匹配度最高的三個女生。 # 思路 # 遍歷每個女生,分別計算其與男生分值的歐幾里得距離,根據距離排序并返回最小的三個女生。 from math import sqrt # 女生列表,列表中每個元素為元組,元組中三個數字表示姓名、顏值、個性、家境 girl_list = [ ('小A', 90, 60, 80), ('小B', 80, 70, 75), ('小C', 70, 80, 90), ('小D', 95, 80, 85), ('小E', 60, 70, 50), ('小F', 75, 85, 95) ] # 男生特征 boy_list = [80, 85, 78] # 遍歷所有女生,計算與男生的歐幾里得距離 distance_list = [] for girl in girl_list: distance = sqrt((girl[1]-boy_list[0])**2 + (girl[2]-boy_list[1])**2 + (girl[3]-boy_list[2])**2) distance_list.append((girl[0], distance)) # 按照距離排序,取出最小的三個女生 distance_list.sort(key=lambda x:x[1]) result = distance_list[0:3] # 輸出結果 for i in range(len(result)): print("第{}匹配女生是{},匹配度為{:.2f}".format(i+1, result[i][0], 1/(1+result[i][1])))
通過上述代碼,我們可以在Python中實現“相親”小功能,從多個女生中篩選出匹配度最高的三個,讓相親變得更加簡單和高效。