今天上课研究生学长讲了一个问题,男女稳定匹配问题,作为一只单身狗觉得这个问题很有意思,下课就试着自己写了下代码。
现有n个男生与n个女生,一男一女配对,要求:
配对的男生与女生互相都是称心的、中意的,且配偶中任一个人都不能有其他彼此更中意的异性。即若给定(A,B)和(C,D)分别是两对配偶,若A和D彼此的喜欢程度都大于自己的配偶(A对D的喜欢程度胜于对B,并且D对A的喜欢程度也胜于对C,这样就会出现A与D私奔的情况),这样是不存在的,也就是说,除了自己的配偶之外,没有更适合的人了。
选择方式:
男生选择自己喜欢的女生并向其告白(有可能多个男生对一个女),女生从对自己告白的男生里面挑选自己最中意的男生作为配偶,被拒绝的男生对其他(排除拒绝自己的女生)女生按照喜欢度排序,并向最喜欢的那个女生告白,所有女生从对自己告白的男生里面挑出最喜欢的一位作为配偶(包括上一步已经选过男生的女生,女生选择时也要考虑上一个选择的男生的喜欢程度是否高于这一次对自己告白的男生)。循环上面的步骤,直到所有男生与女生都配对成功。
这样说比较绕口,用图解描述一下吧。
假设现在有3个男生(A,B,C)与3个女生(1,2,3)。
喜欢程度排序:
第一次男生选取时,挑选自己最中意的女生,A—2, B—1, C—1, 向女生告白。
女生从这些向自己告白的男生中选取自己喜欢程度较高的男生,1—C, 2—A,1女生有两个男生向其告白(B和C),而1女生更喜欢C,所以选择C男生。
B男生被拒绝,在自己的喜欢程度排序中将1排除。
第二次男生选取,A与C已经被选,只剩下B男生,B选择2(因为1女生已经拒绝了B,所以排除1之后最中意的女生是2)。女生2原来选择的B男生,但是在A和B之间,女生更喜欢B,所以拒绝A,选择
男女稳定匹配问题——贪心
最新推荐文章于 2024-08-14 17:08:28 发布
本文介绍了男女稳定匹配问题,通过贪心策略解决,确保配对稳定性。男生主动选择最喜欢的女生,女生则在告白者中选择最喜欢的一个。通过示例和伪代码详细解释了配对过程。
摘要由CSDN通过智能技术生成