当前位置: 代码迷 >> Java相关 >> [求助]如何从产生指定数组内不重复的数值
  详细解决方案

[求助]如何从产生指定数组内不重复的数值

热度:43   发布时间:2007-05-20 03:07:03.0
[求助]如何从产生指定数组内不重复的数值
比如从数组
int [] r = {1,21,13,44,59,2,6,17,86,13,……50,45};
中产生10个不重复的随机数
搜索更多相关的解决方案: 数值  

----------------解决方案--------------------------------------------------------
math.random() 然后判断 我这样想的
----------------解决方案--------------------------------------------------------
同上.
 不是很懂.
----------------解决方案--------------------------------------------------------

import java.util.Random;


public class Test {

public static int [] r = {1,21,13,44,59,2,6,17,86,13,50,45};
int a[]=new int[10];
public static void main(String[] args)
{ Test test=new Test();
Random rd=new Random();

for( int i=0;i<10;i++)
{
test.a[i]=rd.nextInt(r.length);
if(i>0&&test.process(i))
;
else i--;


}
}
public boolean process(int i)
{ boolean t=true;
for(int j=0;j<i;j++)
{
if(a[j]==a[i])
{
t=false;
return t;
}
}
return t;

}

}


----------------解决方案--------------------------------------------------------

上面的错了。


import java.util.Random;


public class Test {

public static int [] r = {1,21,13,44,59,2,6,17,86,13,50,45};
int a[]=new int[10];

public static void main(String[] args)
{ Test test=new Test();
Random rd=new Random();

for( int i=0;i<10;i++)
{
test.a[i]=r[rd.nextInt(r.length)];
if(i>0)
if(!test.process(i))
i--;
}
for(int i=0;i<10;i++)
System.out.println(test.a[i]);

}
public boolean process(int i)
{ boolean t=true;
for(int j=0;j<i;j++)
{
if(a[j]==a[i])
{
t=false;
return t;
}
}
return t;

}

}


----------------解决方案--------------------------------------------------------
  相关解决方案