假若有A,B,C,D,E,F,G,H8个数,取任意6个数做一个组合,则共有262144个组合。
现在我要把这些组合里,单个组合里有3个或3个以上同样字母的组合排除掉,那么还剩下多少个组合?具体怎么运算呢?
然后,我想知道剩下的组合里有多少个是以AB开头的?怎么运算?我想把最终这些组合列出来,用R怎么写呢?
谢谢大家的帮助!
<br />
x <- LETTERS[1:8]<br />
y <- expand.grid(x, x, x, x, x, x) # 得到所有排列(262144)<br />
<br />
z <- apply(y, 1, function(r) max(table(r)))<br />
nrow(y[z < 3,]) # 去掉3个或3个以上同样字母的排列,得到结果:201600<br />
<br />
y[(z < 3) & (y[,1] == 'A') & (y[,2] == 'B'),] # 剩下的组合里以AB开头的,同样可以用 nrow 得到个数(3282)<br />