V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ukipoi
V2EX  ›  程序员

两个值组成的唯一值生成第三种唯一值的方式有哪些?

  •  
  •   ukipoi · 2018-10-05 15:00:45 +08:00 via Android · 4525 次点击
    这是一个创建于 2249 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如 xy 的二维坐标轴。 其中的每一个点都有一个唯一的 x 和 y 值的组合。 那么能通过哪些方法来组合生成一个新的值,并且他是唯一的? 今天在看到线面上的点是相同的时候看到的解答。 面上的一个点,假设坐标(0.123 ,0.456)。那么依次插入会得到这样一个值 0.142536。把这个值当做直线的坐标,这个值在线上是唯一的。 顺便有人能证明下这种方式生成的线是连续的吗?

    19 条回复    2018-10-06 19:13:08 +08:00
    ngg0707
        1
    ngg0707  
       2018-10-05 15:11:03 +08:00 via iPhone
    哈希?
    innoink
        2
    innoink  
       2018-10-05 15:13:16 +08:00 via Android
    不就是单调函数吗?
    Yafeng043
        3
    Yafeng043  
       2018-10-05 15:26:10 +08:00 via iPhone
    楼上启发的思路,考虑一个三维空间的直线方程,有很多单调的函数满足。可以了解一下 geohash 扩展一下思路。或者用二进制序列表示一个坐标数值,两个二进制坐标做奇偶交叉。
    ukipoi
        4
    ukipoi  
    OP
       2018-10-05 15:28:09 +08:00 via Android
    @innoink 是的诶,这么一说这个问题就是 二元函数的单调性问题了,所有的平面都是成立的了。
    不过多元函数有单调性这个概念麽。
    momocraft
        5
    momocraft  
       2018-10-05 15:31:33 +08:00
    (如果座标是实数)

    R^2 和 R 等势(均为\aleph_1 )

    如果你的 R^2 -> R 函数是双射的那应该就是唯一的(好像是废话)
    ukipoi
        6
    ukipoi  
    OP
       2018-10-05 15:35:12 +08:00 via Android
    @Yafeng043
    其实我是好奇[合并方法是将经度、纬度二进制按照奇偶位合并]这种方式将两个数生成了一个新的数。而这个数是唯一的。有没有其他的方法可以办到同样的事情。
    imn1
        7
    imn1  
       2018-10-05 15:39:04 +08:00
    0 和 1
    guyskk0x0
        8
    guyskk0x0  
       2018-10-05 15:40:40 +08:00
    x 和 y 分别用 N bit 表示,拼接成 2N bit 就可以了
    Daath
        9
    Daath  
       2018-10-05 15:53:07 +08:00 via Android
    不知道我这么想对不对,做个参考吧
    1.xy 坐标构成的二维平面,这个平面上的点,属于自然数,自然数是唯一,那两点确定线段,那么线段就是唯一的,将线段延伸多个点,构成一条直线,那么散落在这条直线的点都唯一的了,同时这条直线就是连续的。

    2.假设存在两个相同的 ab 点在同条线上,取在线上另外一点 c,分别与这两个相同点相连,则有两条线段 ca 与 cb,根据两点确定一条线段,且 abc 三点同一条直线,那么 ca 与 cb 就是同一条线段(重叠),那么 ab 两点重叠,所以假设不成立,则线上的点是唯一的。把线段延伸 n 个点,构成一条直线,而这 n 个点是唯一的,所以直线就连续的。

    我的想法就这样吧。😂
    zealot0630
        10
    zealot0630  
       2018-10-05 15:53:38 +08:00
    按位分配的方法是不行的 因为 1 = 0.9999999... 两种表示的数字完全相同 1/11 = 0.09090909 <---> (0, 1), 另一方面 1 <---> (0, 1) 所以这种方法是错的
    Yafeng043
        11
    Yafeng043  
       2018-10-05 15:54:13 +08:00 via iPhone
    @ukipoi geohash 这么设计是有地理空间上的好处。我觉得首先要确定你要保持这种映射之后具备的特性有哪些,然后去设计函数
    RecursiveG
        12
    RecursiveG  
       2018-10-05 16:15:03 +08:00
    各种空间填充曲线欢迎你。
    我记得有个定理说不存在 R 到 R^n 的连续双射。
    如果你是想问值域连不连续,那么值域是 R 是连续的。
    epicnoob
        13
    epicnoob  
       2018-10-05 16:54:25 +08:00
    够写一本书了
    kailium
        14
    kailium  
       2018-10-05 17:15:11 +08:00
    @ukipoi 通过对用你方法生成的点进行平移,可以得到无数种满足你要求的方法。
    jimages
        15
    jimages  
       2018-10-05 17:24:53 +08:00 via iPhone
    三维球坐标画一条线…笛卡尔转化成球坐标得到第三个坐标然后再换成笛卡尔坐标
    Shura
        16
    Shura  
       2018-10-05 17:49:20 +08:00
    zealot0630
        17
    zealot0630  
       2018-10-05 20:27:07 +08:00   ❤️ 1
    @Shura 楼主要的函数肯定不是线性变换,有一个理由上面有人说了,这个映射肯定不是连续的,所以不可能是线性的.

    反证也很容易
    若 L(2u,2v) = 2w
    则 L(u, 2v) = w
    并且 L(2u, v) = w
    所以 L(u, 2v) = L(v, 2u)

    这个映射不唯一,证毕
    zealot0630
        18
    zealot0630  
       2018-10-05 20:27:53 +08:00
    上面最后一句错了 是 L(u, 2v) = L(2u, v)
    zilaijuan
        19
    zilaijuan  
       2018-10-06 19:13:08 +08:00
    我得 geohash 就可以吧,如果你的需要类似于空间曲线填充的话。
    你可以看看这个希尔伯特曲线是不是你想要的
    https://www.bilibili.com/video/av4201747
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2886 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:15 · PVG 20:15 · LAX 04:15 · JFK 07:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.