【发布时间】:2014-01-25 14:49:06
【问题描述】:
我有一种无法表达的解决方案的感觉:
众所周知,地理点的 lat 和 lng 数字是有限的(假设限制为 50)。因此,如果我们考虑一个长度为3、高度为3 的正方形,我们可以用0 和9(3x3)之间的唯一数字表示所有点的组合,对吧?
例如对于x=3、y=2 的坐标,我们可以说3x2 = 6 表示两个点(3,2)和(2,3)。因此,如果我们添加一个维度来区分这两个点,我们可以用一个数字来表示二维空间。假设如果 y-x>0,我们添加 10,以便我们可以区分 (3,2) = 6 和 (2,3) = 16(为了简单起见:我们可以添加 9 以在我们的数字基础中获得空间,但它已经足够复杂了,所以让我们先解决简单的问题)
现在,该解决方案可能很好,但我仍然有一个问题:如果点彼此靠近,我希望一维数字彼此靠近。添加10 if y > x 的解决方案在45° 点之前工作正常,但之后它会爆炸成非常远的数字,即使两个点彼此相邻(只是每个点都在中位数的一侧)。
那么你怎么能想象一个使用相同范围 (9x2) 但彼此靠近的点也具有小的一维距离的解决方案?
考虑过使用奇数和偶数,比如说第三个数字前:2.5481 和 2.5480 来区分与 y<x 标准的点,但我仍然不相信。欢迎评论
PS:请记住,我限制了可能性的范围,例如您会说:“是的,但是 6 可以表达 2x3, 3x2 and 2.7x2.222”,所以要回答这个问题,我们只需要修复位数。如果我们想要0 后面的一位数,我们将所有数乘以10,我们就完成了。
很容易想象我们可以为国际象棋游戏的每个单元格指定一个唯一的数字:然后我们将二维图像转换为一维表示。问题是使二维距离反映在一维数中
【问题讨论】:
-
所以你基本上是想找到二维笛卡尔空间和一维笛卡尔空间之间的连续映射?
-
可以尝试使用康托配对功能en.wikipedia.org/wiki/…
-
嗨 Yevgeniy,非常感谢您的链接,我很高兴一些数学家已经针对这个问题。我的问题有点复杂,因为我想通过单个值预测距离:我的意思是我想要一维大数字的世界地图,但我也想预测哪些点的距离小于 D到任何点 N(如果可以更容易的话,对于一些预定义的 D):我什至可以拥有一个唯一的 D 并复制每个距离的数据。但我必须能够找到 N-D
-
查看您的解决方案,我们可以从结果中找到原始值真是太好了。它还表明,由于我们在函数中有一个额外的 k2,因此对 y 轴上的距离比 x 轴上的距离更敏感。让我们用不同的方式来表述这个问题:到根点的距离可以表示为 sqrt( (x-0)²+(y-0)² ) 对点 (x,y) 应用康托尔函数,所有的它周围的圆点(射线 D)。也许我可以将其表达为 z-d'
-
我的意思是 z-d'