为简单起见,让我们使用 3 种颜色和相应数字的案例示例(尽管现实生活中实际上有 30,000 多种不同的“颜色”和 254 种不同的“数字”)
红色 - 0、1、2、3、10、15
绿色 - 0、2、3、20
蓝色 - 2、10、11、12
我想找到它们之间的匹配项(rgb、rg、rb),并记录集合之间共享的#s 数量:
RGB = 1
rg = 2
rb = 2
最后,它需要确定共享的#s 数量与集合中不同#s 数量的比率。
rgb = 1/9(因为它有一个不同的:0、1、2、3、10、11、12、15、20)
rg = 2/7 (0, 1, 2, 3, 10, 15, 20)
rb = 2/8 (0, 1, 2, 3, 10, 11, 12, 15)
所以总输出将是
比赛 | # 匹配数 | % |
RGB | 1 | 1/9
rg | 2 | 2/7
RB | 2 | 2/8
我能够提出的算法是您在表格中拥有每种颜色并映射与之关联的数字(又名红色(表格名称)、0、1、2、3、10、15(数据))。然后取“数字”最多的颜色,并将其与其他颜色的小时数进行比较,找到匹配项。完成该颜色后,您可以 100% 忽略它并移至下一种颜色并与 n-1 进行比较。
举个例子:
1) 选择红色
2) 其他颜色是否共享 0
3) 是否有其他颜色共享 1
....ETC
4)选择蓝色 5)任何其他颜色减去红色共享.....
我知道必须有一种更有效的方法来做到这一点,有什么建议吗?
谢谢您的帮助。