Spurs

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

知道啥是 gray code 就是收获了.
下面介绍了 gray code 发明的 motivation, 了解动机后就知道啥是 gray code 了.
https://zh.wikipedia.org/wiki/格雷码

// 这题让我知道了啥是 gray code
// gray code (https://zh.wikipedia.org/wiki/格雷码)
// 編碼的方式定義為每個鄰近數字都只相差一個位元,因此也稱為最小差異碼.
// 可以使裝置做數字步進時只更動最少的位元數以提高穩定性
// The idea is simple. G(i) = i^ (i/2).
vector<int> grayCode(int n) {
	vector<int> res;
	for (int i = 0; i < 1 << n; i++)
		res.push_back(i ^ i >> 1);
	return res;
}
posted on 2017-09-07 17:25  英雄与侠义的化身  阅读(190)  评论(0编辑  收藏  举报