22得票17回答
代码高尔夫:格雷码

挑战 编写字符数量最少的程序,输出 格雷码(Gray Code)。从标准输入中获取任意小于1000100000 的数字作为n。将在标准输出中打印出格雷码,就像示例中所示。 注意:我不希望该程序在合理的时间内打印出格雷码(当n=100000 时会很慢),但我希望它可以开始打印格雷码。 示例...

18得票3回答
格雷码加法

有没有已知的方法可以计算两个格雷码的加法(或减法),而不必将这两个格雷码转换为常规二进制数,执行二进制加法,然后将结果转换回格雷码? 我已经编写了增量和减量功能,但加法和减法似乎文档记录更少,并且更难编写。

15得票4回答
格雷码增量函数

不使用任何外部计数器或其他状态,我正在寻找一个高效的函数,它接受一个n位值(大约32位)并返回格雷码中的下一个值。 也就是说:int fn(int x) { int y = gray_to_binary(x); y = y + 1; return binary_to_...

13得票8回答
如何在常数时间内找到格雷码中下一个需要修改的位?

我有一个小型的8位处理器,其上有一个N到M解码器用于某些输出线路 - 例如,对于5到32位情况,我写入00101并改变第5位状态。 输出的唯一接口是状态更改,没有读回。 该设备快速(但随机地)计算发生的事件,并应将此计数作为“单比特更改”代码提供给另一个设备。 另一个设备通过并行读取输出引脚...

10得票6回答
生成格雷码。

我尝试在Python中生成格雷码。这段代码是正确的。问题在于,我在main函数中初始化了基本情况(n=1,[0,1]),并将其传递给gray_code函数来计算其余部分。我想在函数内部生成所有的格雷码,包括基本情况。我该怎么做? def gray_code(g,n): k=len(g...

9得票4回答
第n个格雷码

计算第n个格雷码的公式如下: (n-1) XOR (floor((n-1)/2)) (Source: wikipedia) 我对它进行了编码: int gray(int n) { n--; return n ^ (n >> 1); } 有人能解释一下上述公式...

8得票2回答
生成长时间Gray编码

针对通信系统,我需要一种特殊类型的格雷码。 两个连续的值仅在一个位上不同,就像所有的格雷码一样。 同一位上的两次转换应至少相隔一些任意数量的值。此距离被记为mrl以表示最小运行长度。 当编码翻转时,我不关心最后一个编码到第一个编码的距离,mrl没有限制。 一个这样的格雷码示例是,对于5...

7得票1回答
结构光 - 当投影仪分辨率低于图案时应如何处理?

我正在尝试建立一个结构化光环境来进行3D扫描。 据我所知,如果我选择使用灰码来重构3D模型,我必须实现在2的幂次方(2^x,x = 0~10)中编码的特定图案。 也就是说,这些图案的分辨率至少为1024 x 1024。 但是,如果我的DLP投影仪只支持高达800 x 480的分辨率呢...

7得票2回答
除二进制外,格雷码还存在于其他进制中吗?

只是出于好奇,除了二进制,是否还有其他进位方式定义了格雷码呢? 我尝试在三进制中计数,写下连续的值,只改变一个trit。我已经能够枚举所有的值直到26 (3**3-1),它似乎是有效的。 000 122 200 ...

7得票5回答
.NET中的格雷码

在.NET框架中是否有内置的格雷码数据类型?或者在格雷码和二进制之间进行转换的工具?我可以自己做,但如果轮子已经被发明了...