You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求可生成唯一整数结果的有序数对映射算法

数对(x,y)到唯一整数的映射方案

以下是几种适用于x < y场景的高效实现方法:

方法一:三角数公式映射

利用三角数的累加特性,直接通过公式生成唯一整数:

def F(x, y):
    # 假设x从0开始取值
    return (y - 1) * y // 2 + x

原理:按y值分组,每个y对应的数对数量等于y(当x从0开始时),用三角数求和公式累加前y-1组的总数,再加上当前组内的x偏移量,确保每个(x,y)对应唯一整数。若x从1开始,公式调整为(y-2)*(y-1)//2 + x。

方法二:常数偏移映射

如果不需要连续的整数结果,可使用大常数偏移避免碰撞:

# 设定K为大于所有可能y值的常数,比如已知y最大为10000,K取10001
K = 10001
def F(x, y):
    return x * K + y

因为x < y < K,所以x*K + y不会出现重复的情况,每个数对对应唯一整数。

方法三:二进制拼接映射

通过二进制位拼接生成唯一整数,适用于数值范围有限的场景:

def F(x, y):
    # 假设x和y均为32位以内的整数
    return (y << 32) | x

将y的二进制位左移32位后,与x的二进制位拼接,每个数对的二进制表示唯一,对应整数自然唯一。若数值更大,可调整移位位数(比如64位)。

内容的提问来源于stack exchange,提问作者Sergey Makarov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:56:07