gpt4 book ai didi

c++ - 如何将两个正整数映射到一个唯一的整数?

转载 作者:太空宇宙 更新时间:2023-11-04 05:26:44 25 4
gpt4 key购买 nike

给定两个整数,我需要找到一个唯一的整数。也就是说,给定两个整数 x 和 y..我想找到一个函数 f...它将这些整数唯一地映射到另一个整数 z。那是, z=f(x,y)

这里 x=64 位整数,y=64 位整数。我想将这些数字映射到 z,这样它又是一个 64 位整数。

我尝试了 Cantors 配对函数,但 Cantors 配对函数返回给我一个 128 位的“z”,因为 Cantors 配对函数涉及乘法。我不希望 z 映射到 128 位,因为现代计算机的处理限制只有 64 位。

有什么办法吗?一点点碰撞对我来说是可以接受的。

最佳答案

如果您想对整个 64 位整数范围执行此操作,那么这是不可能的。

您的函数有 2^64 * 2^64 = 2^128 个可能的输入,但您只有 2^64 个不同的输出,这意味着必须至少有 2^64 个数字映射到同一个整数,这远远超过 一点点冲突

关于c++ - 如何将两个正整数映射到一个唯一的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23206912/

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