gpt4 book ai didi

python - 在 Python 3 中将两个整数映射为一个整数

转载 作者:行者123 更新时间:2023-11-30 22:12:11 25 4
gpt4 key购买 nike

我想将两个整数映射为一个,用于类中的哈希函数。这些整数范围从 0 到 12856320000000。我听说我可以使用下面的 Cantour 配对函数来做到这一点

enter image description here

但是,我的sys.maxsize

9223372036854775807

因此,当 k1 和 k2 很大(如下例所示)时,答案将不是整数

k1 = 6887309306
k2 = 6887309307
pi(k1,k2)=9.487005898057764e+19

有办法解决这个问题吗?谢谢

最佳答案

您的问题不是由数字引起的,而是由除以 2 引起的。Python 3.x 中的除法总是产生 float 。您应该使用整数除法:

(k1 + k2) * (k1 + k2 + 1) // 2 + k2
#94870058980577640498

关于python - 在 Python 3 中将两个整数映射为一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51182342/

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