组合与排列计算器

计算有多少个方法去选物件。
去阅读组合与排列来详细了解

 

注意:旧 Flash 版本在这里.

去阅读组合与排列来详细了解。

高级用户!

你现在可以添加 "规则" 来缩短结果:

"has"规则,表明一定要含有某些物件(才能包括在结果里)。

例子:has 2,a,b,c 的意思是一定要含有 a、b 和 c 里的任何两个才能包括在结果里

"no" 规则 的意思是某些物件不可以同时出现。

例子:no 2,a,b,c 的意思是一定不可以有两个或以上在 a、b 和 c 里的字母

"pattern" 规则 是用来定义结果里每一项的规律。

例子:pattern c,* 的意思是 c 一定要是第一个字母(其他的物件都在 c 的后面)

(你可以去论坛讨论这些规则。)

规则详细说明

"has" 规则

英语单词 "has" 后面加:一个空格、一个数、一个逗号、然后一列用逗号分隔的物件。

数代表结果里每项(至少)要有几个后面列出的物件。

例子1 has 1,a,b,c

结果里每项一定要包含 a,或 b,或 c,或 a 和 b,或 a 和 c,或 b 和 c,或 a、b 和 c

换句话说,结果里每一项一定要包含 a 或 b 或 c。

所以可以有 {a,e,f},但不可以有 {d,e,f}。

例子:has 2,a,b,c

一定要包含 a 和 b,或 a 和 c,或 b 和 c,或 a、b 和 c。.

换句话说,结果里每项一定要有 a、b、c 里的至少两个字母。

所以可以是 {a,b,f},但 {a,e,f} 就不行了。

 

"no" 规则

英语单词 "no" 后面加:一个空格、一个数、一个逗号、然后一列用逗号分隔的物件。

数代表一项里(至少)要有几个后面列出的物件才不能在结果里。

例子:n=5、r=3、Order=no、Replace=no

没有任何规则,结果是:

{a,b,c} {a,b,d} {a,b,e} {a,c,d} {a,c,e} {a,d,e} {b,c,d} {b,c,e} {b,d,e} {c,d,e}

加这个 "no" 规则:

a,b,c,d,e,f,g
no 2,a,b

结果就是:

{a,c,d} {a,c,e} {a,d,e} {b,c,d} {b,c,e} {b,d,e} {c,d,e}

项 {a,b,c}、{a,b,d} 和 {a,b,e} 不在结果里,因为规则表明不能有 a、b 里面两个字母(一个可以,但不能两个都有)

例子:no 2,a,b,c

只允许这些:

{a,d,e} {b,d,e} {c,d,e}

排除了含有 a 和 b,或 a 和 c,或 b 和 c,或 a、b 和 c 的项。

{a,d,e) 在结果里因为只有 a、b 和d c 里的一个字母

但 {b,c,d} 就不行了(有 a、b、c 里的两个字母)

例子:no 3,a,b,c

这些都可以:{a,c,d} {a,c,e} {a,d,e} {b,c,d} {b,c,e} {b,d,e} {c,d,e}

只有 {a,b,c} 不行,因为有 a、b、c 里的 3个字母

 

"pattern" 规则

英语单词 "pattern" 后面加:一个空格、然后一列用逗号分隔的物件。。

可以有这些 "特别" 物件:

例子:pattern ?,c,*,f

意思是 "任何物件、c、零或多个物件、f"

所以可以是 {a,c,d,f}

{b,c,f,g} 也可以(c 和 f 中间没有物件是可以的)

但 {c,d,e,f} 就不行了,因为 c 前面没有物件。

例子:有几个方法可以排列 阿里, 璐璐, 莲儿和小庄,小庄在阿里后面。

用:n=4, r=4, order=yes, replace=no.

阿里, 璐璐, 莲儿, 小庄
pattern *,阿里,*,小庄

结果是:

{阿里,璐璐,莲儿,小庄} {阿里,璐璐,小庄,莲儿} {阿里,莲儿,璐璐,小庄} {阿里,莲儿,小庄,璐璐} {阿里,小庄,璐璐,莲儿} {阿里,小庄,莲儿,璐璐} {璐璐,阿里,莲儿,小庄} {璐璐,阿里,小庄,莲儿} {璐璐,莲儿,阿里,小庄} {莲儿,阿里,璐璐,小庄} {莲儿,阿里,小庄,璐璐} {莲儿,璐璐,阿里,小庄}