求一种算法?可以用排列组合也可以用编程循环
一个由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)