【问题标题】:Explain the code of Z-order curve解释Z阶曲线的代码
【发布时间】:2015-07-23 04:21:44
【问题描述】:

WikipediaZ-order curve的解释中,有一些Python的代码:

def less_msb(x, y):
    return x < y and x < (x ^ y)

这里有两个问题:

  1. msb 的缩写是什么?

  2. 既然x &lt; y,为什么还要比较x(x^y)呢?

【问题讨论】:

    标签: python z-order


    【解决方案1】:

    msbMost Significant Bit

    确定是否最显着较小的一种方法是比较每个点的以 2 为底的对数的下限。原来下面的操作是等价的,只需要异或操作:

    def less_msb(x, y):
       return x < y and x < (x ^ y)
    

    需要进行第二次比较,因为即使x &lt; yxmsb 不一定小于ymsb

    例如x = 2y = 3x &lt; yxy 具有相同的msb

    print bin(2), bin(3)
    0b10 0b11
    

    您可以在下表中看到x^y 不小于x,直到y 的bit_length 大于x 的,直到此时它们的msbs 相等:

    (2, 3)   2^3 =  1   bin(2):   10    bin(3):    11
    (2, 4)   2^4 =  6   bin(2):   10    bin(4):   100
    
    (3, 4)   3^4 =  7   bin(3):   11    bin(4):   100
    
    (4, 5)   4^5 =  1   bin(4):  100    bin(5):   101
    (4, 6)   4^6 =  2   bin(4):  100    bin(6):   110
    (4, 7)   4^7 =  3   bin(4):  100    bin(7):   111
    (4, 8)   4^8 = 12   bin(4):  100    bin(8):  1000
    
    (5, 6)   5^6 =  3   bin(5):  101    bin(6):   110
    (5, 7)   5^7 =  2   bin(5):  101    bin(7):   111
    (5, 8)   5^8 = 13   bin(5):  101    bin(8):  1000
    
    (6, 7)   6^7 =  1   bin(6):  110    bin(7):   111
    (6, 8)   6^8 = 14   bin(6):  110    bin(8):  1000
    
    (7, 8)   7^8 = 15   bin(7):  111    bin(8):  1000
    
    (8, 9)   8^9 =  1   bin(8): 1000    bin(9):  1001
    (8,10)  8^10 =  2   bin(8): 1000   bin(10):  1010
    (8,11)  8^11 =  3   bin(8): 1000   bin(11):  1011
    (8,12)  8^12 =  4   bin(8): 1000   bin(12):  1100
    (8,13)  8^13 =  5   bin(8): 1000   bin(13):  1101
    (8,14)  8^14 =  6   bin(8): 1000   bin(14):  1110
    (8,15)  8^15 =  7   bin(8): 1000   bin(15):  1111
    (8,16)  8^16 = 24   bin(8): 1000   bin(16): 10000
    

    【讨论】:

    • 另外一个问题:计算Z-values时,以二维为例,我们shuffle of x and y时是不是一定要yx之前?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 2015-07-22
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多