Math 需要计算二维空间中点的ID的公式吗

Math 需要计算二维空间中点的ID的公式吗,math,2d,formula,identification,Math,2d,Formula,Identification,基本上,我想找出一个公式,计算二维空间中一个点的唯一识别号。 条件: 如果f(x,y)=c,那么就没有其他的X1,Y1,因此f(X1,Y1)=c x和y都是整数,c也必须是整数(double可能不适合,因为它的精度有问题,我不确定它是否适合用作哈希表中的键)。当然,这是非常简单的。让我概述一个算法,我将把编码作为一个练习留给任何愿意做的人 拿一张纸,最好把它做成一张大的,然后在上面画一个方格。用从最小到最大的数字标记列,因此对于从1到大的整数。以相同的方式标记行。我假设您开始将行和列标记为1,那

基本上,我想找出一个公式,计算二维空间中一个点的唯一识别号。 条件: 如果f(x,y)=c,那么就没有其他的X1,Y1,因此f(X1,Y1)=c
x和y都是整数,c也必须是整数(double可能不适合,因为它的精度有问题,我不确定它是否适合用作哈希表中的键)。

当然,这是非常简单的。让我概述一个算法,我将把编码作为一个练习留给任何愿意做的人

拿一张纸,最好把它做成一张大的,然后在上面画一个方格。用从最小到最大的数字标记列,因此对于从1到大的整数。以相同的方式标记行。我假设您开始将行和列标记为1,那么这个网格的左上角单元格将位于(1,1)

在(1,1)处的单元格中写入数字1。在单元(2,1)中写入2、(1,2)中写入3、(1,3)中写入4、(2,2)中写入5

现在有了从二维整数“空间”到一维整数空间的可逆映射


多亏了他在这件事上的帮助。

这当然是微不足道的。让我概述一个算法,我将把编码作为一个练习留给任何愿意做的人

拿一张纸,最好把它做成一张大的,然后在上面画一个方格。用从最小到最大的数字标记列,因此对于从1到大的整数。以相同的方式标记行。我假设您开始将行和列标记为1,那么这个网格的左上角单元格将位于(1,1)

在(1,1)处的单元格中写入数字1。在单元(2,1)中写入2、(1,2)中写入3、(1,3)中写入4、(2,2)中写入5

现在有了从二维整数“空间”到一维整数空间的可逆映射


感谢他的帮助。

这可能是从简单到不可能的任何事情。x和y是整数并且有一定的范围吗?如果你有x的上限和下限,那么我会尝试这样的事情,例如0T,然后求解
n(n+1)/2=T
。类似于枚举正有理数,只是它也计算可约化分数。考虑到你必须计算你所处的对角线,解码有点棘手,可能是通过识别输入的下一个最低三角形数
T
,然后求解
n(n+1)/2=T