JAVA题求助 从一个数组中随机不重复的选择多个元素

JAVA编程从一个数组中随机不重复的选择多个元素,要用到inta[]={1,2,3,4,5,6,7,8,9,0},booleanr[]=newboolen[a.lengt... JAVA编程 从一个数组中随机不重复的选择多个元素,
要用到int a[]={1,2,3,4,5,6,7,8,9,0},
boolean r[]=new boolen[a.length]
展开
 我来答
pingia
2010-06-25 · TA获得超过569个赞
知道小有建树答主
回答量:697
采纳率:100%
帮助的人:769万
展开全部
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;
}
}

}
}
jyzzmmzz123
2010-06-25 · TA获得超过331个赞
知道答主
回答量:170
采纳率:0%
帮助的人:99.3万
展开全部
代码有点多,应该还可以简化。

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());
}

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dapangzisibing
2010-06-25 · TA获得超过313个赞
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:170万
展开全部
1.使用循环,向r中存贮随机的布尔值,
2.使用循环,根据r中的布尔值来取a中的数据
就这样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rffffffff007
2010-06-25 · TA获得超过299个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:360万
展开全部
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的选项就代表了所选择的数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式