On this page
article
Gray Code
Sobre
Gera uma permutacao de 0 a 2^n-1, de forma que
duas posicoes adjacentes diferem em exatamente 1 bit
O(2^n)
Link original: grayCode.cpp
Código
vector<int> gray_code(int n) {
vector<int> ret(1<<n);
for (int i = 0; i < (1<<n); i++) ret[i] = i^(i>>1);
return ret;
}