CISD 计算中外空间电子组态的快速哈希算法

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

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;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值