-4

它是什么类型的系列以及如何通过 php 程序生成它?

0 1 3 2 6 7 5 4 12 13 15 14 ...

观察:实体的连续差为1

例子:

0和1的差是1

3 和 2 的差为 1

6 和 7 的差为 1

5 和 4 的差为 1

12 和 13 的差为 1

15 和 14 的差为 1

请帮忙 ...

4

1 回答 1

1

它是高达 n 的格雷码的十进制等价物。我已经编写了一个代码来为任何数字生成格雷码,用它来生成一个系列。我用过Javascript,但你可以选择任何你想要的语言。

   Number.toGrayCode = function(n) {
        if (n < 0) {
            throw new RangeError("cannot convert negative numbers to gray code");
        }
        return n ^ (n >>> 1);
    };
    
   for( var i=0;i<=10;i++)
    console.log(Number.toGrayCode(i));

于 2017-10-22T23:41:36.640 回答