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

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

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

热点排行