怎么在取出的不重复随机数中包括指定数字

lxn460896944 2013-01-10 09:23:13
/**下面代码是取出不重复的随机数,
我想在这些选取的不重复随机数中包括指定的数(比如是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] + ",");
}
}
...全文
129 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
安特矮油 2013-01-10
  • 打赏
  • 举报
回复
建议使用数组的形式,就像彩票一样吗? 如果有必须出现的,那么再创建一个例如int[]{5,9,13},然后根据基准创建另外一个,比如是0-21 那么应该是先剔除掉之前的[5,9,13],然后创建一个存放随机数的数组,例如5位的 int[5],那么先随机吧必须出现的数分布到int[5]里面,然后记录位置,再随机获取剩余的数放入剩余的位置即可
失落夏天 2013-01-10
  • 打赏
  • 举报
回复

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

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧