这是从算法的书任务。
问题是,我完全不知道从哪里开始!
Trace the following non-recursive algorithm to generate the binary reflexive
Gray code of order 4. Start with the n-bit string of all 0’s.
For i = 1, 2, ... 2^n-1, generate the i-th bit string by flipping bit b in the
previous bit string, where b is the position of the least significant 1 in the
binary representation of i.
所以我知道1位的格雷码应为0 1
,2 00 01 11 10
等。
许多问题
1)我知道,对于n = 1,我可以启动0 1
?
2)我应该如何理解“开始全0的n位串”?
3)“以前的比特串”? 这串是“前”? 从低n位的上一个手段? (例如对于n = 2,以前是从一个n = 1)?
4)我如何转换,即使1比特串到2位的字符串,如果只有操作有翻转?
这混淆了我很多。 唯一的“人”的方法,我至今不解的是:取套从低n位,复制它们,反转第2集,第1套加0的每一个元素中,添加1的做在第二集中的每个元素。 DONE(例如: 0 1
- > 0 1 | 0 1
- > 0 1 | 1 0
- > 00 01 | 11 10
- > 11 01 11 10
处理完毕。
谢谢你的帮助