怎么查找用户相关性.求思路或代码.多谢!
如何查找用户相关性......求思路或代码...谢谢!!!
例如:用户1 选择的产品: 1,3,5,7
用户2 选择的产品: 2,4,5,6
用户3, 选择的产品 1,3,4,7
通过什么方法可以判断出 用户1,用户3 是相关的。因为他们选择了3个相同的产品。,只要三个或三个以上相同的产品两个用户就是相关的。
------解决方案--------------------
字符串匹配之类的问题
------解决方案--------------------
例如:用户1 选择的产品: 1,3,5,7
用户2 选择的产品: 2,4,5,6
用户3, 选择的产品 1,3,4,7
通过什么方法可以判断出 用户1,用户3 是相关的。因为他们选择了3个相同的产品。,只要三个或三个以上相同的产品两个用户就是相关的。
------解决方案--------------------
字符串匹配之类的问题
------解决方案--------------------
- C# code
class Program { static void Main(string[] args) { List<ArrayList> li = new List<ArrayList>(); li.Add(new ArrayList() {"用户1","1","3","5","7" }); li.Add(new ArrayList() { "用户2", "2", "4", "5", "6" }); li.Add(new ArrayList() { "用户3", "1", "3", "4", "7" }); li.Add(new ArrayList() { "用户4", "1", "2", "5", "7" }); li.Add(new ArrayList() { "用户5", "1", "3", "5", "7" }); List<string[]> li_N = new List<string[]>(); for (int i = 0; i < li.Count; i++) { for (int j = i+1; j < li.Count; j++) { bool fg = GetRelationName(li[i], li[j]); if (fg) { li_N.Add(new string[] { li[i][0].ToString(), li[j][0].ToString() }); //看看结果 Console.Write(li[i][0].ToString() + "与" + li[j][0].ToString() + "有关系\r\n"); } } } Console.Read(); } //比较数组 static bool GetRelationName(ArrayList li1,ArrayList li2) { int flag = 0; for (int i = 1; i < li1.Count; i++) { if (flag <= 3) { for (int j = 1; j < li2.Count; j++) { if (li1[i] == li2[j]) { flag++; } } } else break; } if (flag == 3) return true; else return false; } }
------解决方案--------------------
LZ,你这是个大课题……
参考:推荐引擎