首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

组合算法,1234,要生成三个位置不一定的数

2013-01-06 
求一个组合算法,1234,要生成三个位置不一定的数。1234123124121122211212213....请问怎么写好呢?[解决办法]

求一个组合算法,1234,要生成三个位置不一定的数。
1234
123
124
121
122
211
212
213
....

请问怎么写好呢?
[解决办法]
写一个二进制计数器,
例如: 12345五个数字,那么就会有2的5次方-1 个组合。
就用5位二进制计数。当计数器为11000时,就代表12,二进制的每位对应那5个数字,为1时就代表应用那一位。
看下面源码。
[解决办法]

//笛卡尔积
public static List<String> conbination( String prefix ){
List<String> list = new ArrayList<String>();
if( prefix.length() < 6 ){
for( int ii = 1 ; ii <= 7 ; ii++ ){
list.addAll( conbination( prefix+ii ) ) ;
}
}
else{
//System.out.println( prefix );
list.add( prefix );
}
return list;
}
List<String> list = conbination("");

热点排行