如果两个人A和B有两个大的布尔值列表,如何在两个人之间的数据传输最少的情况下找到列表中的第一个不匹配项?

时间:2019-03-19 04:57:11

标签: hash comparison data-transfer

让我们说一个人A的列表= [T,T,F,T,F ...],一个人B的列表= [T,T,F,T,T ...],那么我们需要说索引4是列表中的第一个不匹配位置。
列表中的条目数量可能非常大(约5000万)。如何在两个人之间传输的数据(字节)最少的情况下有效地执行此搜索?

1 个答案:

答案 0 :(得分:0)

您可以使用Merkle树结构并在O(log n)传输中找到不匹配的内容。对于256位哈希函数(例如SHA256),可以按256个元素的一部分拆分数组。这部分将是默克尔树的叶子。