0

我需要从如下所述的有序数组中采样整数。

k为正整数。

  • 所有条目都是非负整数[0,2^k)

  • 列表开始于0

  • 汉明权重为 1 的所有(递增)整数模位移(即乘以 2)跟随。
  • 汉明权重为 2 的所有(递增)整数模位移、跟随等。

的数组k=5如下所示:

        0 ( weight 0 )
        1 ( weight 1 )
       11 ( weight 2 )
      101
     1001
    10001
      111 ( weight 3 )
     1011
     1101
    10011
    10101
    11001 

特别是,给定列表中的一个条目,我想通过算法推断下一个条目。

我知道这可以通过多种方式完成(例如,参见这个问题)。为了完整起见,这就是这些其他数组的样子,与上面的数组不同:

        0 ( weight 0 )
        1 ( weight 1 )
       10
      100
     1000
    10000 
       11 ( weight 2 )
      101
      110
  ... etc
4

1 回答 1

1

I figured out the answer to this, in case anyone needs it.

Given an entry, add the second least bit and carry. If it reduces the Hamming weight, put the necessary number of 1's starting from the second least-significant position.

于 2018-09-21T11:30:44.690 回答