gpt4 book ai didi

algorithm - 为自定义结构生成唯一哈希?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:02:11 25 4
gpt4 key购买 nike

我需要为封装此数据的对象构建哈希(作为无符号 32 位整数)。

Entry {
uint8 r;
uint8 g;
uint8 b;
bool empty;
uint8 count;
}

每个实例的哈希必须是唯一的,除非实例相等。两个实例相等当且仅当:

  • 两种情况下计数相等

  • r,g,b 相等在两种情况下均设置为空

散列将用于散列映射和其他容器中,因此它可能会被经常调用。哈希生成需要快速。

我想到了 CCCERRRGGGBBB,其中:

  • CCC/RRR/GGG/BBB:count/r/g/b 3 位数
  • E:如果设置为空则为 1,否则为 0

但是这个数字超出了范围。

有什么想法吗?

最佳答案

你将很难将 33 位信息编码为 32 位

if (empty == false)
return count ~ r ~ g ~ b
else
return count ~ 0

您会得到一个重叠,即当 empty 为 false 且 r、g、b 均为 0 时 - 这将与 empty 为 true 且 r、g、b 为 0 时的散列相同

在没有进一步假设的情况下,这是可以做到的最好结果。

关于algorithm - 为自定义结构生成唯一哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16862686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com