作者TroyLee (TroyLee)
看板Electronics
标题Re: [问题]请问一下有什麽好方法可以找出gray code
时间Wed Nov 14 02:06:28 2007
※ 引述《Festung (die Festung Iserlon)》之铭言:
: 这种问题是Combinatorial Generation产生组合的问题的一种,
: 你可以在Frank Ruskey's Combinatorial Generation Resources网站,
: 找到这类的演算法与程式码。
: http://www.cs.sunysb.edu/~algorith/implement/ruskey/implement.shtml
: 在此把产生Gray Code的范例程式贴於下供您参考:
太麻烦了....
//代入初始的 Pattern(可以直接代零), 和长度(Bits数)
void grayCode(unsigned int pattern, unsigned int size)
{
unsigned int i=0, mask, digital;
mask = 1<<size-1;
while(i<1<<size)
{
// 重点在这行...
mask = i^(i>>1);
// 把 GrayCode 印出来
for(digital=1<<(size-1); digital; digital>>=1)
printf("%d", (digital & (mask ^ pattern)? 1:0));
printf("\n");
i++;
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.250.193.10
※ 编辑: TroyLee 来自: 60.250.193.10 (11/14 02:09)
1F:→ cbscloud:谢谢~! 11/14 08:02
2F:→ ppc:推 11/14 21:59