假设我有一个数字的CSV,就像在1,321,3,51,5,...中,数字的数量并不是不切实际的大(在0-999999范围内)。
我需要搜索这类CSV的大型数据库。CSV中的每个数字在整个数据库中都是唯一的。但是问题是,我需要选择使用CSV中的单个数字来识别整个序列。
例如,我的数据库中有两个元素:"1,2,3,4"和"5,6,7,8"。现在,我需要找到包含数字3的元素。简单的方法是只查看每个对象,看看它是否包含数字。
所以我在想,有没有类似于单向哈希算法这样的方法,可以让我有一个简短的α-数字(或其他什么)来唯一地识别数字3是否在它的构造中被使用过?
发布于 2022-03-22 19:11:07
一个数字要么存在,要么不在CSV中,没有重复。您可以将每个CSV减少到一个位模式:"1,2,3“变为1110000."1,2,4,6“变为1101010000.000,其中1表示存在数字,0表示它不存在。
根据CSV的稀疏性,您可以通过消除长串的零位来压缩位模式。这样"1,2,3“就变成了111+999997*
或者,您需要想一种方便的方法来存储1,000,000位数字。也许是个大整数包?
https://stackoverflow.com/questions/71575554
复制相似问题