std::vector<std::bitset<32>> gray_code_generation(
intn) {
34std::vector<std::bitset<32>>
gray_code= {};
41 inttotal_codes = 1 << n;
43 for(
inti = 0; i < total_codes; i++) {
44 intgray_num = i ^ (i >> 1);
45 gray_code.push_back(std::bitset<32>(gray_num));
59std::vector<std::bitset<32>> gray_code_negative_1 = {};
61std::vector<std::bitset<32>> gray_code_0 = {};
63std::vector<std::bitset<32>> gray_code_1 = {
64std::bitset<32>(0), std::bitset<32>(1)
67std::vector<std::bitset<32>> gray_code_2 = {
68std::bitset<32>(0), std::bitset<32>(1), std::bitset<32>(3), std::bitset<32>(2)
71std::vector<std::bitset<32>> gray_code_3 = {
72std::bitset<32>(0), std::bitset<32>(1), std::bitset<32>(3), std::bitset<32>(2),
73std::bitset<32>(6), std::bitset<32>(7), std::bitset<32>(5), std::bitset<32>(4)
76std::vector<std::bitset<32>> gray_code_4 = {
77std::bitset<32>(0), std::bitset<32>(1), std::bitset<32>(3), std::bitset<32>(2),
78std::bitset<32>(6), std::bitset<32>(7), std::bitset<32>(5), std::bitset<32>(4),
79std::bitset<32>(12), std::bitset<32>(13), std::bitset<32>(15), std::bitset<32>(14),
80std::bitset<32>(10), std::bitset<32>(11), std::bitset<32>(9), std::bitset<32>(8)
83std::vector<std::bitset<32>> gray_code_5 = {
84std::bitset<32>(0), std::bitset<32>(1), std::bitset<32>(3), std::bitset<32>(2),
85std::bitset<32>(6), std::bitset<32>(7), std::bitset<32>(5), std::bitset<32>(4),
86std::bitset<32>(12), std::bitset<32>(13), std::bitset<32>(15), std::bitset<32>(14),
87std::bitset<32>(10), std::bitset<32>(11), std::bitset<32>(9), std::bitset<32>(8),
88std::bitset<32>(24), std::bitset<32>(25), std::bitset<32>(27), std::bitset<32>(26),
89std::bitset<32>(30), std::bitset<32>(31), std::bitset<32>(29), std::bitset<32>(28),
90std::bitset<32>(20), std::bitset<32>(21), std::bitset<32>(23), std::bitset<32>(22),
91std::bitset<32>(18), std::bitset<32>(19), std::bitset<32>(17), std::bitset<32>(16)
95assert(bit_manipulation::gray_code::gray_code_generation(-1) == gray_code_negative_1);
96assert(bit_manipulation::gray_code::gray_code_generation(0) == gray_code_0);
99assert(bit_manipulation::gray_code::gray_code_generation(1) == gray_code_1);
100assert(bit_manipulation::gray_code::gray_code_generation(2) == gray_code_2);
101assert(bit_manipulation::gray_code::gray_code_generation(3) == gray_code_3);
102assert(bit_manipulation::gray_code::gray_code_generation(4) == gray_code_4);
103assert(bit_manipulation::gray_code::gray_code_generation(5) == gray_code_5);
static void test()
Self-test implementations.
int main()
Main function.
Generate n-bit Gray code.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4