匹配用户算法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了匹配用户算法相关的知识,希望对你有一定的参考价值。
我正在尝试为我的网站创建匹配算法。
说明:
匹配本身应该是通过填写问题的一些答案,然后与回答匹配答案的人进行匹配。*有些答案可能超过1个答案。*如果用户要求,则可以与多个人匹配。
例如:您喜欢的音乐类型(最多3个)?答案:岩石,金属您说的语言(最多3种)?答案:英文,西班牙文中文您喜欢的功能(最多2个)?回答:瘦高]]
答案来自答案池(下拉列表,用户无法写出他想要的内容。
如果我在上面给出了与此用户匹配的一些示例,则为:
1. genre - Rock | language - english | features - Tall 2. genre - Rock,Metal | language - spanish | features - Skinny 3. genre - Metal | language - chinese | features - Skinny,Tall
原理是,每个问题至少应匹配一件事。
问题
:因此,我正在努力创建一个与其他用户匹配的算法。
我考虑过将每个条目(搜索数据)放在数据库中的表中,然后查询与用户数据匹配的所有人员的单独列表。
因此,在这种情况下,要获取我需要的所有列表,需要12个查询才能获取12个列表:
想要混合列表,因为我可能想联系3个人而不是2个人,然后我不想要混合语言或其他喜欢的东西。SELECT * from table WHERE genre="Rock" And language="English" And feature="Tall" SELECT * from table WHERE genre="Rock" And language="Spanish" And feature="Tall" SELECT * from table WHERE genre="Rock" And language="Chinese" And feature="Tall" SELECT * from table WHERE genre="Metal" And language="English" And feature="Tall" SELECT * from table WHERE genre="Metal" And language="Spanish" And feature="Tall" SELECT * from table WHERE genre="Metal" And language="Chinese" And feature="Tall" SELECT * from table WHERE genre="Rock" And language="English" And feature="Skinny" .. ..
也我不
所以在代码中将是这样的:
for(int i = 0; i < genres.length; i++) { for(int j = 0; j < languages.length; j++) { for(int k = 0; k < genres.length; k++) { list = SELECT * from table WHERE genre=genres[i] And language=languages[j] And feature=features[k] } } }
这种方法有点难看,而且还需要很多嵌套循环,将来如果我要添加问题,这只会在循环中添加越来越多的嵌套。
不说插入每个条目也会有问题,因为每个用户都有数组对于每个问题,因此表中的每一行将只需要包含数组中的元素之一,这意味着每个用户在数据库表中将有几行。
我应该如何解决这个问题/算法?
谢谢。
我正在尝试为我的网站创建匹配算法。说明:匹配本身应该是通过填写问题的一些答案,然后与回答匹配的人进行匹配...
答案
让我们看一下两种可能性(还有更多可能性)
以上是关于匹配用户算法的主要内容,如果未能解决你的问题,请参考以下文章
有人可以解释啥是 SVN 平分算法吗?理论上和通过代码片段[重复]