import java.util.*;
创新互联是一家集网站建设,尼勒克企业网站建设,尼勒克品牌网站建设,网站定制,尼勒克网站建设报价,网络营销,网络优化,尼勒克网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
public class a {
public static void main(String[] args) {
int i;
char c;
String[] a = {"座位1","座位2","座位3","座位4","座位5"};
/*生成座位list*/
ListString seat = new ArrayListString();
/*向其中添加座位*/
for(i = 0;i 5;i++){
seat.add(a[i]);
}
/*调用函数,将顺序打乱*/
Collections.shuffle(seat);
/*显示结果*/
for(i = 0,c = 'a'; c = 'e';c++,i++){
System.out.println("学生"+c+"坐在"+seat.get(i));
}
}
}
有问题追问我
这种要求得代码只有两种人会给答案
第一种:有现成代码并且良心发现愿意贡献出来的
第二种:闲着没事吃饱了时间特别多的
java内的Collections类自带了一个shuffle洗牌算法。
static void shuffle(List? list)
使用默认随机源对指定列表进行置换。
static void shuffle(List? list, Random rnd)
使用指定的随机源对指定列表进行置换。
现在你可以把52张牌放进一个List里,调用他的shuffle算法打乱顺序。
有一组数据,然后你又每组需要分4个人,到底是一组数据还是多组数据呀,不知道你是不是想把一组 数据分成4份?如果是,给你个思路 ,假如你的这组数据是一个字符串数组a,你就循环a的长度次数,每次都产生一个0到a长度之间的随机数,强转成int,并记录到一个新数组里,这样一直循环取,当然,如果新数组里已经记录的数字不要重复记录,保证这个新数组里装的是唯一的数,并且这些数组里的数字,是你字符串数组的a的下标,然后循环新数组,按新数组里的值做下标去取a数组里的字符,a长度假如是20的话,每隔五个就放在一起,这样分成四份,而且取的顺序是新数组的下标来决定的,而新数组的下标又是随机生成的,。。。这样就达到随机将这组数据分成份了
是等分还是不等分?
如果是等分,可以先定义四个长度为10的数组,对每个数组随机地在那40个数(也存在数组里)中取数,已经取过的标记一下,下次不再取;
如果是不等分,可以对每个数生成一个1-4的随机数,分别对应不同的组
import java.util.Random;
public class Foo {
public static void main(String[] args) {
int group = 5;
int men = 101;
int groupTemp = group;
Random r = new Random();
int [] radomnum = new int[group];
int[] indexs = new int[group];
Integer[][] groups = new Integer[group][men%group0?men/group+1:men/group];
int[] manArray = new int[men];
for(int i=0;igroup;i++) {
radomnum[i] = i;
}
for(int i=0;imanArray.length;i++) {
manArray[i] = i+1;
}
for(int i=0;imanArray.length;i++) {
int index = r.nextInt(groupTemp--);
int menIndex = r.nextInt(manArray.length-i);
int temp = radomnum[index];
groups[temp][indexs[temp]++]=manArray[menIndex];
radomnum[index] = radomnum[groupTemp];
radomnum[groupTemp] = temp;
if(groupTemp==0) groupTemp=group;
temp = manArray[menIndex];
manArray[menIndex]=manArray[manArray.length-i-1];
manArray[manArray.length-i-1] = temp;
}
for(int i=0;igroups.length;i++) {
System.out.print("第"+(i+1)+"组:\t");
for(int j=0;jgroups[i].length;j++) {
if(groups[i][j]!=null) {
System.out.print(groups[i][j]+"\t");
}
}
System.out.println();
}
}
}
代码在上,供你参考吧,如果问题欢迎追问