Zobrist密钥的高效数据结构
Efficient data structure for Zobrist keys
Zobrist键是棋盘游戏中使用的64位哈希值,用于唯一表示在树搜索过程中找到的不同位置。它们通常存储在大小为1000K个条目或更多的数组中(每个条目大约有10个字节长)。该表通常由hashKey % size
作为索引进行访问。你会用什么样的STL容器来表示这种类型的表?考虑一下,由于表的大小有限,可能会发生冲突。对于"普通"数组,我必须处理这种情况,所以我想到了一个无序映射,但由于没有指定实现,我不确定在填充映射时它的效率有多高。
在我看来,一个标准的哈希图非常适合你——快速查找,它将可靠而无形地为你处理冲突。
如果您希望探索STL之外的其他领域,请查看Judy数组:这些数组应该适合您的问题。
如果你在Linux上,你可以很容易地对它们进行实验,只需从你的存储库中安装。。。
此申请说明可能有助于解决您的任务。
编辑
有一个STL接口:我要用它进行实验,然后我会报告我的结果。
相关文章:
- 链表,反向函数,数据结构
- 如何使用set实现无序数据结构?
- 我们可以将数据永久保存为数据结构吗?
- C++中的可变长度数组/数据结构
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- 通过 NIF 从C++返回自定义数据结构
- 编译器上的策略数据结构不起作用
- 尝试构建"lock-free"数据结构C++
- 用于高效搜索的数据结构
- 用于双向随机访问的 C++ 高效数据结构
- 在Haskell中使用O(1)元素访问实现高效的类似拉链的数据结构
- C++ 高效的数据结构,用于附加具有覆盖的数据
- 用于存储 3d 点的高效数据结构
- 高效频率计算的数据结构决策.
- C++:用于高效插入和检索自定义数据的数据结构
- 密集矩阵和稀疏矩阵的高效(时间和空间复杂性)数据结构
- 更高效的数据结构
- Zobrist密钥的高效数据结构
- 该数据结构支持高效删除和随机访问
- 数据结构+算法为ipv4存储高效搜索前缀