N位整数匹配算法

N bits integer matching algorithm

我正在尝试编写一种算法来建立值“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 个用户之间的相关性,然后再执行另一种算法来将这些相关性从高到低排序吗? 任何帮助将不胜感激。

感谢您的宝贵时间,

马克西姆

您可以使用与运算得到结果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.

这里有个问题。你可以通过使用 num 中出现的最大值来解决这个问题,比如 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