JAVA题求助 从一个数组中随机不重复的选择多个元素
发布网友
发布时间:2022-10-18 00:54
我来回答
共4个回答
热心网友
时间:2023-11-05 09:03
import java.util.Random;
public class vder {
public static void main(String[] args) {
int a[]={1,2,3,4,5,6,7,8,9,0};
boolean r[]=new boolean[a.length];
Random random = new Random();
int m = 5; //要随机取的元素个数
if(m > a.length || m < 0)
return;
int n = 0;
while(true)
{
int temp = random.nextInt(10);
if(!r[temp])
{
if(n == m) //取到足量随机数后退出循环
break;
n ++;
System.out.println("得到的第" + n +"个随机数为:" + temp);
r[temp ] = true;
}
}
}
}
热心网友
时间:2023-11-05 09:03
代码有点多,应该还可以简化。
public class TestG {
/**
* @param args
*/
public static void main(String[] args) {
int a[]={1,2,3,4,5,6,7,8,9,0};
boolean r[]=new boolean[a.length];
Set b=new HashSet();
for(int i=0;i<a.length;i++){
double k=Math.random();
if(Math.round(k)==1){
r[i]=true;
}else{
r[i]=false;
}
}
for(int k=0;k<r.length;k++){
if(r[k]==true){
//System.out.println(a[k]);
b.add(a[k]+"");
}
}
Iterator it=b.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
热心网友
时间:2023-11-05 09:04
1.使用循环,向r中存贮随机的布尔值,
2.使用循环,根据r中的布尔值来取a中的数据
就这样
热心网友
时间:2023-11-05 09:04
int a[]={1,2,3,4,5,6,7,8,9,0};
boolean r[]=new boolen[a.length];
int num = 3; \\ 随即选取的数量
int len = a.length;
int i = 0;
while(i < num){
int j = Random.nextInt(len);
while(r[j])
j = Random.nextInt(len);
r[j] = true;
i++;
}
\\ 最终r数组中true的选项就代表了所选择的数