有2^n个0和1 组成的环,每n位组成一个2进制数,要求这2^n个数包含(0~2^n-1),请教算法,谢谢。

morris 2002-04-20 06:08:44
(2^n代表2的n次方)
例如 n=3
00010111
n=2
0011
...全文
150 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
morris 2002-04-24
  • 打赏
  • 举报
回复
谢谢大家
intfree 2002-04-21
  • 打赏
  • 举报
回复
有两种方法建图,一种是哈密顿回路,一种是欧拉回路.
mathe 2002-04-21
  • 打赏
  • 举报
回复
不是欧拉回路吧,我怎么感觉像哈密顿回路呢。而且点的数目是2^n,也不少。
凭直觉我倒是觉得可以用移位寄存器来做。应该是用移位寄存器如果产生周期为2^n的序列,一个周期内每相邻n位个不相同的,所以只要产生一个2阶域中n次不可约多项式就可以构造一个这样的结果
mathe 2002-04-21
  • 打赏
  • 举报
回复
找到了一个计算本原多项式的页面,提供了计算本原多项式的C代码,
http://seanerikoconnor.freeservers.com/Mathematics/AbstractAlgebra/PrimitivePolynomials/overview.html

在得到一个本原多项式
f(x)=x^n+a(n-1)x^(n-1)+...+a(1)*x+1后,
使用递推式
u0=u1=u2=..=u(n-1)=0
u(s+n)=u(s+n-1)*a(n)+u(s+n-2)*a(n-1)+....+u(s+1)*a(1)+1.
其中,*,+都是F(2)上的运算(也就是*用&代替,+用|代替)
(当然u(k)=0或1)
我们就可以得到周期为2^n的0,1序列(称为M序列)
morris 2002-04-20
  • 打赏
  • 举报
回复
谢谢2位,可不可以具体点,给出算法的伪代码。
starfish 2002-04-20
  • 打赏
  • 举报
回复
nod, 没错
这是欧拉回路问题
没有必要构造图,因为是欧拉回路,所以直接递归搜索就可以了,最坏情况下的复杂度可以得到保证
intfree 2002-04-20
  • 打赏
  • 举报
回复
把它转换成一个图论中的一笔画问题后,用构造法来解

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧