簡體   English   中英

在Python 3中將兩個整數映射到一個整數

[英]Mapping two integers into one integer in Python 3

我想將兩個整數映射到一個用於類中的哈希函數。 那些整數范圍從0到12856320000000.我聽說我可以使用下面的Cantour配對功能這樣做

在此輸入圖像描述

但是,我的sys.maxsize

9223372036854775807

結果,當k1和k2如下例所示時,答案將不是整數

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

反正有沒有解決這個問題? 謝謝

你的問題不是由數字引起的,而是由你除以2的事實引起的。在Python 3.x中的除法總是產生一個浮點數。 你應該使用整數除法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM