N位整数匹配算法

时间:2019-03-26 17:58:44

标签: algorithm firebase-realtime-database correlation matching bipartite

我正在尝试编写一种算法,以建立值“ 1”的n位整数之间的相关性。

这是一个5位整数的示例:0,1,0,0,1

我想确定此整数与N个其他整数集之间的相关百分比。

例如,整数A(0,1,0,0,1)和整数B(0,1,0,0,0)的值“ 1”的相关性为0.5,仅是第二个位匹配。 在我的Firebase数据库中,我要对每个user_ID附加一个n位整数,该数字要与应用程序中每个其他用户的n位整数匹配,以获取每个用户之间的相关类型。 用户之间总相关性的分布将遵循高斯曲线,我将来会使用该曲线来使用户彼此匹配。

例如:我希望用户A与其他所有用户匹配,并且这些匹配项按亲和性的降序排列(从其n位整数之间的高相关性到低相关性)。

你们知道我如何执行该算法以建立N个用户之间的相关性,然后执行另一种算法以将这些相关性从高到低排序吗? 任何帮助将不胜感激。

感谢您的时间,

马克西姆

1 个答案:

答案 0 :(得分:1)

您可以使用和操作来获得结果R。

示例:

A = 9  = 01001
B = 8  = 01000
C = 7  = 00111
D = 31 = 11111

R = A & B gives 8 = 01000, the correlation is counting the ones: R/A = 1/2 = 0,5. 

R = A & C gives 1 = 00001, the correlation: R/A = 1/2 = 0,5.

R = A & D gives 9 = 01001, R/A = 2/2 = 1.

这是一个问题。您可以通过使用R / max(A,D)之类的数字中出现的最大值来解决此问题

我相信最好使用总位数(此处为5)。

结果将是

corr AB = 1/5 = 0,2
corr AC = 1/5 = 0,2
corr AD = 2/5 = 0,4
corr CD = 3/5 = 0,6
相关问题