gray-code相关内容
不使用任何外部计数器或其他状态,我正在寻找一个高效函数,它接受一个 n 位值(32 位左右)并在 格雷码. 即: int fn(int x){int y = gray_to_binary(x);y = y + 1;返回 binary_to_gray(y);} 虽然 binary_to_gray() 函数很简单(x ^ (x >> 1)),但相应的 gray_to_binary()> 一点
..
我最近遇到了格雷码,我一直在努力思考用于将格雷码转换回二进制(32 位或更少)的高效算法. num = num ^ (num >> 16);num = num ^ (num > > 8);num = num ^ (num >> 4);num = num ^ (num > > 2);num = num ^ (num >> 1); 这是我说的代码.下面是我的问题: 这和普通代码有什么区别(右
..
我是汇编的初学者,这是我设计的代码,用于从二进制转换为灰色,并以十六进制打印所得的位模式. 电影,一个mov bl,alshr bl,1Xor Al,BL 尽管程序正在运行,但我想学习其他更简单的方法来提高效率,但我尝试了许多其他方法,但它会影响输出. 解决方案 (此答案是根据问题的第一个版本编写的,该版本中存在一些尚未优化的代码,并且是的完整源代码.exe程序.对该问题的更新已删除
..
是否有类似Python的itertools.product()这样的东西,它以灰色代码顺序通过一组集合的笛卡尔积提供迭代?例如,假设存在这样一个假设生成器,并将其称为gray_code_product(),则gray_code_product(['a','b','c'], [0,1], ['x','y'])将按照以下顺序生成: ('a',0,'x') ('a',0,'y') ('a',1,'
..
我正在寻找一种迭代n个元素集的所有k个元素子集的算法.我不想显式地生成所有这些子集. 有一个简单的算法可以做到这一点,即按字典顺序对相应的位向量进行排序,然后从当前子集转到下一个子集. 尽管如此,我仍在寻找一种算法,该算法在每个步骤中仅切换2位.我已经读过这样的代码称为“灰色代码",但是我没有找到解决我的问题的算法. 是否有直接的实现方法? 解决方案 这不会是一个完整的答
..
有多种方法可以迭代 n位格雷码.有些比其他的更有效率.但是,我实际上不需要格雷码,而是想遍历格雷码列表中更改的位索引,而不是实际的格雷码.例如,请使用以下3位格雷码列表: 000,001,011,010,110,111,101,100 我想输出3、2、3、1、3、2、3.这告诉我们我们需要更改位3、2、3等以获取列表.在这里,我从1开始,从左开始索引. 执行此操作的一种方法是依次
..
我尝试在 Python 中生成格雷码.此代码正常工作.问题是我正在初始化main函数中的基本情况(n=1,[0,1]),并将其传递给gray_code函数以计算其余部分.我想在函数本身内部生成所有格雷码,包括基本情况.我该怎么办? def gray_code(g,n): k=len(g) if n
..
有没有办法通过对第(n-1)个格雷码进行位操作来使用第(n-1)个格雷码导出第4位第n个格雷码? 例如,第4个格雷码是0010.现在,我想通过对0010进行位运算来获得第5个格雷码0110. 解决方案 也许是“作弊",但您可以将查找表打包成64位常量值,如下所示: 0000 0 -> 1 0001 1 -> 3 0011 3 -> 2 0010 2 -> 6 0110 6 ->
..
除了汉明距离,我已经拥有了一切.我不断收到错误消息"int()无法使用显式基数转换非字符串" 这是我的代码: def int2bin(n): if n: bits = [] while n: n,remainder = divmod(n, 2)
..
我必须编写一个程序,以格雷码显示一些数字。我已经在此页面中找到了用C ++编写的算法(”> https://www.geeksforgeeks.org/given-a-number-n-generate-bit-patterns-from -0到2n-1,所以成功的模式相差一比特/ )。 但是我想创建一种新的方法来删除连续有两个“ 1”并且在末端(左右)有“ 1”的数字。 示例:对于n
..
挑战 按字符数计数的最短程序,输出n位灰色代码。 n 是小于 1000 100000 (由于用户建议),取自标准输入。格雷码将打印在标准输出中,例如在示例中。 注意:我不希望程序执行此操作在合理的时间内打印出格雷码( n = 100000 是过大的);我确实希望它能够开始打印。 示例 输入: 4 预期产量: 0000 0001
..
我有一个小型的8位处理器,在某些输出线上具有N-to-M解码器-例如,对于5到32位的情况,我写00101,第5位改变状态.输出的唯一接口是更改状态,没有回读. 设备会快速(但随机)计数发生的事件,并应将此计数作为“单个位更改"代码提供给另一台设备.输出引脚由另一台设备并行读取,并且可能根据另一台设备的决定而快速或谨慎地读取,因此计数是必需的. 我不需要使用标准的二进制反光格雷代码-我
..
最近出现了一个问题:编写算法将十进制数转换为n位格雷码。 例如: 使用1位(最简单): 0 - > 0 1 - > 1 使用2位 0 - > 00 1 - > 01 2 - > 11 3 - > 10 使用3位 0 - > 000 1 - > 001 2 - > 011 3 -
..
在从底部到顶部的比赛图表中,有一个获胜者,我被告知,它以某种方式与灰色代码相关联。我知道灰色代码是一个替代代码,它是递归的,有用的是找到各种游戏,空格填充曲线,纠错码,硬盘定位的最佳解决方案,是钢琴演奏者的缩写,但是这个代码如何与锦标赛图表有关吗? 解决方案 从 here : 二叉树中的一个节点。每个 节点中的值包含 锦标赛树中最佳排名队伍的排名。事实证明,排名-1的灰色代码有
..
我想拿出一个解决方案,这两个数字的问题,发现如果他们是灰色code顺序即连续编号,如果是灰色code邻居假设灰色code序列没有被提及。 我搜索的各种论坛,但不能得到正确的答案。这将是巨大的,如果你能提供一个解决方案。 我试图问题 - 转换两个整数二进制并在这两个数字分别添加数字,并找到在两个数的数字的总和之间的差。如果差异之一,那么他们是灰色code邻居。 但我觉得所有的情况下,这不会工作
..
这是从算法的书的任务。 的事情是,我完全不知道从何说起! 跟踪以下非递归算法生成二进制反思 订单4.启动所有0的N位串灰色code。 对于i = 1,2,... 2 ^ n-1个,生成翻转比特b的第i个位串 previous比特串,其中b是在的至少显著1的位置 二重$ P $ i的psentation。 所以我知道格雷code 1位应该是 0 1 2 00 01 11 10 等。
..
我想实现一个算法来获得k个元素的所有组合出一套n个元素,其中连续两个组合之间的差异最大化的(一种使反向灰色codeS)。换言之,该组合要责令避免从连续出现两次的元素,并且从而没有元件被不必要地鉴别 理想地,该算法也将不会$ P $对 - 计算所有组合,并将它们存储到存储器,而是提供的组合上的需求。 我寻觅广泛,这和发现了一些详细的解答,如 http://stackoverflow.com/a/1
..
的计算公式第n个灰色code是: (N-1)XOR(楼((N-1)/ 2)) (图片来源:维基百科) 我的连接codeD它: INT灰色(INT N) { N--; 返回否^(N>> 1); } 有人可以解释上述公式工作,或可能的deriviation? 解决方案 如果你看一下二进制计数序列,你注意,相邻codeS在几个最后两位不同(无孔),所以如果
..
我有一个矩阵,持有1:s或0:S,创建二进制数。其宽度为n。对于n = 2和n = 3会是这样的: 00 000 01 001 10 010 11 011 100 101 110 111 等。现在,我用下面的code产生这种。 INT行=(int)的Math.pow(2,N); INT COL = N; INT [] []矩阵=新INT [行] [
..
有没有什么算法,我可以用它来查找灰色code邻居? 有关小数目是蛮好写的整个表,但如果我有一些类似的 010 110 是有点多用6个号码写入整个灰色code表。 解决方案 从的维基百科: / * 此功能的目的是转换一个无符号 二进制数来反映二进制格雷code。 操作员GT;>是右移。操作^是异或。 * / 无符号整数binaryTo
..