CISD 计算中,外空间最多只能有两个电子存在,所有可能的组合是
- alpha 0, beta 0
- alpha 1, beta 0
- alpha 1, beta 1
- alpha 2, beta 0
- alpha 0, beta 1
- alpha 0, beta 2
我们只需要记录电子在哪个轨道上,而无需将外空间完整记录为两个 0/1 序列。这就需要四个整数去保存电子存在的位置:[a1, b1, a2, b2]。实际体系的轨道数总是有限的,那么我们可以将这四个数用 16 位去表示,四个数拼接为 64 位,用这样一个 64 位无符号整数作为这四个数整体的哈希。
算法实现如下:
std::uint64_t Hash(unsigned a1, unsigned b1, unsigned a2 = 0, unsigned b2 = 0)
{
std::uint64_t hash_val = 0;
hash_val |= a1;
hash_val <<= 16;
hash_val |= a2;
hash_val <<= 16

在CISD计算过程中,外空间电子配置最多涉及两个电子。通过只记录电子所在轨道而非完整的0/1序列,可以使用四个整数和一个64位无符号整数哈希来简化表示。这种方法降低了存储需求,提高了计算效率。算法实现了将四个轨道编号高效转化为哈希值。
最低0.47元/天 解锁文章
2719

被折叠的 条评论
为什么被折叠?



