首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

求一种算法?可以用排列组合也可以用编程循环,该如何处理

2012-12-17 
求一种算法?可以用排列组合也可以用编程循环一个由a,b,c组成的n位数,要求这个数中不能有两个或以上的aa相

求一种算法?可以用排列组合也可以用编程循环
一个由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之间必须有一个数,每个数有两种选择,也就是22,剩下一个数也是有两种选择,不过位置很随意头,随意放在哪个地方,也就是6个位置,一共6*2个可能,就是说当有三个a的情况下可以排列成22*6*2。。。其他的楼主可以根据这种方法去求解,就是先把a放在那,再往 空处插入b跟C
[其他解释]
我去问问我儿子

[其他解释]
如果三个a相连也是属于两个a相连
不好意思!
问题已经解决了,f(n)=2f(n-1)+f(n-2)

热点排行