我正在尝试编写一种算法来建立值“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 数据库中,我有一个 n 位整数附加到每个 user_ID,我想将其与我应用程序的每个其他用户的 n 位整数进行匹配,以获得每个用户之间的一种相关性。 用户之间总相关性的分布将遵循一条高斯曲线,我想在未来使用它来匹配用户。
例如:我希望用户 A 与所有其他用户匹配,这些匹配按亲和性降序排列(他们的 n 位整数之间的相关性从高到低)。
你们知道我如何执行该算法来建立 N 个用户之间的相关性,然后再执行另一个算法来将这些相关性从高到低排序吗? 任何帮助将不胜感激。
谢谢你的时间,
马克西姆
最佳答案
可以使用and操作得到Result 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
关于algorithm - N位整数匹配算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55363537/