当前位置: 代码迷 >> VC >> 求一种算法?可以用排列组合也可以用编程循环,该怎么解决
  详细解决方案

求一种算法?可以用排列组合也可以用编程循环,该怎么解决

热度:657   发布时间:2013-02-25 00:00:00.0
求一种算法?可以用排列组合也可以用编程循环
一个由a,b,c组成的n位数,要求这个数中不能有两个或以上的aa相邻,求数的个数。
例如n=2时,正确个数为8:ab,ac,ba,bb,bc,ca,cb,cc,而aa不正确,求详解?
------解决方案--------------------------------------------------------
我去问问我儿子

------解决方案--------------------------------------------------------
楼主有点歧义 “要求这个数中不能有两个或以上的aa相邻”  是不能有两个或以上a相邻还是不能有两个或以上aa相邻???  题目要求是aa,但举例却是a

但不管是什么,用排列组合的插入法来进行排列就可以算出数的个数。不太好表达,大概意思就是,说“不能有两个或以上a相邻”这个吧,比如6个数,最多只能有三个a,当有三个a时,在每个a之间必须有一个数,每个数有两种选择,也就是2?,剩下一个数也是有两种选择,不过位置很随意头,随意放在哪个地方,也就是6个位置,一共6*2个可能,就是说当有三个a的情况下可以排列成2?*6*2。。。其他的楼主可以根据这种方法去求解,就是先把a放在那,再往 空处插入b跟C