【发布时间】:2023-03-08 05:30:01
【问题描述】:
我正在尝试考虑一种算法,该算法根据一些用户定义的属性(位置、兴趣等)随机配对用户。许多应用和游戏都实现了类似的算法,例如,Tinder(流行的约会移动应用)根据用户的位置、性别和年龄随机匹配用户。但是,对于 Tinder,两个用户彼此“配对”并不重要。然而,我正在尝试将用户配对以进行某种即时通信和交互。
问题是我不知道从哪里开始。如果它已经完成了这么多次,或者至少使用另一个实现作为参考,我不想重新发明轮子。不过,我的 Google 搜索并不丰富,很可能是因为不完全知道要搜索什么,例如特定的算法名称。
如何实现加权随机用户匹配算法?最佳匹配算法会更好。我不希望您为一个人提供所有代码(除非它真的很容易),伪代码/理论或指向明确定义的库或实现的链接都可以。
到目前为止我的想法:
存储/连接
- 将用户分成两个表:主动表和被动表。主动用户通过被动表执行随机搜索/配对算法。向匹配的被动用户发送匹配请求。被动用户接受第一个收到的匹配请求,拒绝所有其他请求。用户被匹配以进行通信,并且可以从表中删除。如果一段时间后没有“选择”被动用户,则可能需要超时,以便它可以成为活动用户。
搜索
- 活动用户根据活动用户位置的设定范围等内容随机选择设定数量的被动用户。考虑到被动用户从他们的位置设置的范围?
加权算法
- 每个用户定义的属性都被分配了一个特定的重要性权重。计算匹配属性的数量(相似或在范围内呢?)以及它们的权重组合在一起。根据用户的匹配值对用户进行排序。为最高匹配的被动用户执行存储/连接阶段。如果该用户接受匹配请求,则他们已连接,如果没有尝试下一个最高匹配的被动用户。如果没有建立连接,则重新开始整个算法。
【问题讨论】:
-
嗯,投了反对票,但是,没有评论他们为什么投反对票。赶上潮流?有趣的是,StackOverflow 变得更多的是关于声誉点以及它带来的错误的智力和重要性,而不是问题和答案(它是从中成立的)。如果您不理解某个问题或需要更多信息,您可以发表评论。如果你不知道答案,你不必提供一个!你对一个问题的看法,比如“它很琐碎”,是无关紧要的。该网站不是为了养活自我,而是为了提问和回答问题。
-
因为我昨天很着急,没有机会解释为什么我对此投了反对票:我觉得这个问题太宽泛了(并标记为这样)。如果你问的是更具体的问题,而不是在我看来像一个想法产生的问题,那么它会更适合 SO。
-
这是可以理解的,我很欣赏你的评论。我会在下一个问题中考虑到这一点。