原帖由 huahua0919 于 2008-9-1 09:40 发表
楼主的a b a 组合其中有相同的,怎么算组合(排列组合不允许有相同的组合)
可能是我的表述有问题
我的意思是:输入3个字符应该是6种组合 输入4个字符应该是24种组合 输入5个字符应该是120种组合
不管输入有无重复字符 也就是如果输入a a a a a 就要输出120行 a a a a a 实际上最后一行的第一位并不一定是第一排的第一位的a
这样的表述是否清楚?
下面是个效率不错的组合输出:但输入的组合不能有重复字符 而且是固定位数- @echo off&setlocal enabledelayedexpansion
- set var=a b c d c d e f
- for %%i in (!var!) do (
- set var1=!var:%%i=!
- for %%j in (!var1!) do (
- set var2=!var1:%%j=!
- for %%k in (!var2!) do (
- set var3=!var2:%%k=!
- for %%l in (!var3!) do (
- set var4=!var3:%%l=!
- for %%m in (!var4!) do (
- set var5=!var4:%%m=!
- for %%n in (!var5!) do (
- set var6=!var5:%%n=!
- set/a flag+=1
- echo %%i %%j %%k %%l %%m %%n !var6: =!
- ))))))
- echo 共有%flag%个组合
- pause
复制代码
[ 本帖最后由 terse 于 2008-9-2 16:12 编辑 ] |