需求求助
怎样得到一个数组的一个随机排列?如我现在有个数组里面的元素为{1,2,3,4,5},现在我要每次得到它里面所有元素的一个随机排列,如第一次我可能得到{2,3,4,1,5},第二次我可能得到{3,2,5,4,1}!谢谢了! 问题点数:40、回复次数:4Top
1 楼chg2008(岂能尽如人意,但求无愧我心!)回复于 2006-02-07 17:07:47 得分 5
容易啊,生成数据下标的随机序列,再根据这个下标数组来得到原数组的一个随机排列Top
2 楼JaredJared()回复于 2006-02-07 17:20:07 得分 5
把数据保存到list中,调用Connections.shuffle(list)就可以了。Top
3 楼popy007(Twinsen)回复于 2006-02-07 17:47:17 得分 30
Vector org = new Vector();
for(int i=0; i<5; ++i)
org.addElement(Integer(i)); // 0,1,2,3,4 => org vector
Random rnd = new Random();
Vector dest = new Vector();
for(i=0; i<5; ++i) {
int r = abs(rnd.nextInt())%(5-i);
dest.addElement(Integer(org.elementAt(r)));
org.remove(r);
}
dest向量得到的就是一个org向量打乱后的序列
Top
4 楼yanxiazhiqiu(if the words don't come my way...)回复于 2006-02-07 18:54:08 得分 0
谢谢楼上!Top




