组合与排列计算器
计算有多少个方法去选物件。
去阅读组合与排列来详细了解
注意:旧 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" 后面加:一个空格、然后一列用逗号分隔的物件。。
可以有这些 "特别" 物件:
- ?(问号)代表任何物件。就像个 "通配符"。
- *(星号)代表任何个数的物件(0、1或以上)。像个 "超级通配符"。
例子: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 *,阿里,*,小庄
结果是:
{阿里,璐璐,莲儿,小庄} {阿里,璐璐,小庄,莲儿} {阿里,莲儿,璐璐,小庄} {阿里,莲儿,小庄,璐璐} {阿里,小庄,璐璐,莲儿} {阿里,小庄,莲儿,璐璐} {璐璐,阿里,莲儿,小庄} {璐璐,阿里,小庄,莲儿} {璐璐,莲儿,阿里,小庄} {莲儿,阿里,璐璐,小庄} {莲儿,阿里,小庄,璐璐} {莲儿,璐璐,阿里,小庄}