/**下面代码是取出不重复的随机数,
我想在这些选取的不重复随机数中包括指定的数(比如是13,7,26等)并且得到这些指定数字的下标值,该怎么实现
*/
public class test7
{
public static void main(String[] args)
{
int[] arr = new int[10]; //抽取多少个数
for (int i = 0; i < 10; i++)
{
arr[i] = (int) (Math.random() * 20) + 1; //在什么范围
for (int j = 0; j < i; j++)
{
if (arr[j] == arr[i])
{
i--;
break;
}
}
}
for (int i = 0; i < 10; i++)
System.out.print(arr[i] + ",");
}
}
我想在这些选取的不重复随机数中包括指定的数(比如是13,7,26等)并且得到这些指定数字的下标值,该怎么实现
*/
public class test7
{
public static void main(String[] args)
{
int[] arr = new int[10]; //抽取多少个数
for (int i = 0; i < 10; i++)
{
arr[i] = (int) (Math.random() * 20) + 1; //在什么范围
for (int j = 0; j < i; j++)
{
if (arr[j] == arr[i])
{
i--;
break;
}
}
}
for (int i = 0; i < 10; i++)
System.out.print(arr[i] + ",");
}
}
public class Test2
{
public static void main(String[] args)
{
int[] arr = new int[10]; //抽取多少个数
for (int i = 0; i < 10; i++)
{
arr[i] = (int) (Math.random() * 20) + 1; //在什么范围
for (int j = 0; j < i; j++)
{
if (arr[j] == arr[i])
{
i--;
break;
}
}
}
for (int i = 0; i < 10; i++)
System.out.print(arr[i] + ",");
int[] att=new int[3];
att[0]=13;att[1]=7;att[2]=26;
for(int i=0;i<arr.length;i++){
for(int j=0;j<att.length;j++){
if(att[j]==arr[i]){
System.out.println("下标:"+i+" 指定的数:"+att[j]);
}
}
}
}
如果有必须出现的,那么再创建一个例如int[]{5,9,13},然后根据基准创建另外一个,比如是0-21 那么应该是先剔除掉之前的[5,9,13],然后创建一个存放随机数的数组,例如5位的 int[5],那么先随机吧必须出现的数分布到int[5]里面,然后记录位置,再随机获取剩余的数放入剩余的位置即可