我分类的方法,不一定最简,你参考一下
首先第一位肯定是1不说了
第一步,排3和4,显然只有两种排法,334和343
第二步,把剩下的两个1排进去,第三步把三个2排进去,由于2不能相连,要把三个2插进已经排好的5个数形成的6个空里,C(6,3) = 20种,但这20种里有不满足“第一个2在第一个3前面”要求的,根据第二步的三种分类,分别把不满足要求的去掉
第二步分三类:
①两个1打头,只有1种方法,那么第一个3后面只有三个空位,不满足“2在3前”条件的方法,等价于2全在第一个3的后面,只有C(3,3)=1种,所以此类共1*(20-1) = 19
②一个1打头,一个1在第一个3后面,那么共有C(3,1)=3种方法,此时第一个3后面有4个空位,不满足条件的有C(4,3)=4种,所以此类共有3*(20-4) = 48
③两个1都在3后面,分为两个1挨着和不挨着两种方式相加,共有C(3,1)+C(3,2)=6种。此时第一个3后面有5个空位,不满足条件的有C(5,3)=10种,所以此类共有6*(20-10) = 60
所以最终结果是 2 * (19+48+60) = 254
写的比较长,其实步骤倒也不多,文字描述比较多。。。