我理解格雷码在它们之间有一点变化,以及如何在二进制和灰色之间进行转换。但是如果长度为 n ,我想生成一系列格雷码(所有可能的),这些码有一位变化且最大 k 。
示例:给定n = 3
和k = 2
001 011 010 110 100 101
答案 0 :(得分:1)
我能想到的一个可能的解决方案与格雷码生成完全不同,通常是:
k
(汉明距离)但我不喜欢它,因为你需要将所有数字存储在一个Set中并使用try和error。
答案 1 :(得分:1)
我不相信可以设计这样的代码。这是案例n=4, k=2
的证据的非正式大纲。将有4个代码设置为1位,6个设置为2位。
从0000
开始(尽管我不认为编码实际开始的地方因为格雷码环绕)。然后下一个代码将设置1位。顺序中的下一个必须设置2位,1位后一位,然后是2位,然后是1位,然后是2位,然后是1位,然后是2位,你仍然有2位代码,其中2位设置为左...