1-31中随机取一个数字,
再在取出数字外的30个中再取一个数字怎么取?想看代码??
是一个笔试题!!!

解决方案 »

  1.   

    //i1 is the first, i2 is the second
    Random r = new Random();
    int i1 = r.nextInt(31)+1;
    int i2 = r.nextInt(31)+1;
    while(i2 == i1)
    {
      i2 = r.nextInt(31)+1;
    }
      

  2.   


    Random r = new Random(); 
    int i1 = r.nextInt(31)+1; 
    int i2 = 0; 
    while(true) {
       i2 = r.nextInt(31)+1;
       if(i2 != i1)
           break;
    }
    System.out.println("i1 = " + i1 + ", i2 = " i2);
      

  3.   

    Random r = new Random();  //创建一个新的随机数生成器int i1 = r.nextInt(31)+1; 
    //返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。int i2 = 0; 
    while(true) {
       i2 = r.nextInt(31)+1;
       if(i2 != i1)
           break;
    }
    System.out.println("i1 = " + i1 + ", i2 = " i2);
      

  4.   

    Random random = new Random();
    int[] value = new int[31];for(int i = 0;i <31;i++)  生成31个随机数
        value[i] = random.nextInt(31)+1;system.out.println(valuel[random.nextInt(30)]); 随机获取
      

  5.   

    system.out.println(valuel[random.nextInt(30)]); 随机获取
    这句写错了,应该是
    system.out.println(valuel[random.nextInt(31)]); 随机获取
    我没跑。你自己试吧!
      

  6.   

    import java.util.*;
    public class Test  
    {  public static void main(String args[])  
    {  
    Random r= new Random();
    int a =(r.nextInt(31))+1;
    int b=(r.nextInt(31))+1;
    while(a==b)
    {
    b=(r.nextInt(31))+1;
    }
    System.out.println(a);
    System.out.println(b);
    }  
    }
      

  7.   


    int ran[]=new ran[30],T,randNum; //T is temp  ,  randNum is index of ran[]for(int i=1;i<31;i++)
        ran[i]=i;randNum=(int)(Math.random()*31+1)   // 0<randNum<32int numberOne=ran[randNum];         // numberOne from 1~31T=ran[randNum];ran[randNum]=ran[31];ran[31]=T;  //swap(ran[randNum],ran[31])randNum=(int)(Math.random()*30+1)   // another number and 0<randNum<31 (the last one has been choosed)
    int numberTwo=ran[randNum];         
      

  8.   

    int ran[]=new int[30]and two ';' lost
      

  9.   

    //final edition:public class CreatNum{ public static void main(String args[]){
    int ran[]=new int[32],T,randNum; //T is temp  ,  randNum is index of ran[]  for(int i=1;i <31;i++) 
         ran[i]=i;  randNum=(int)(Math.random()*31+1);   // 0 <randNum <32  int numberOne=ran[randNum];         // numberOne from 1~31  T=ran[randNum];ran[randNum]=ran[31];ran[31]=T;  //swap(ran[randNum],ran[31])  randNum=(int)(Math.random()*30+1);   // another number and 0 <randNum <31 (the last one has been choosed) 
    int numberTwo=ran[randNum];   

    System.out.println("a="+numberOne+" ,b="+numberTwo);
    //System.out.println();  
    }    
    }
      

  10.   


    import java.util.Random;public class HelloWorld {
    public static final int COUNT = 10;

    public static void main(String[] args) throws Exception {
    int[] a = new int[COUNT];
    for (int i=0; i<COUNT; i++) {
    a[i] = i + 1;
    }

    int[] b = new int[COUNT];
    Random random = new Random();
    int count = COUNT;
    int randomInt = 0;
    for (int j=0; j<COUNT; j++) {
    randomInt = random.nextInt(count);
    b[j] = a[randomInt];
    a[randomInt] = a[count-1];
    count--;
    }
    for (int i : b) {
    System.out.println(i);
    }
    }

     
    }
      

  11.   

    6楼写的就是了!用random.nextInt(31)+1;取30次,把取出的数字存放到数组里,这样就可以随便取了!Random random = new Random(); 
    int[] value = new int[31]; for(int i = 0;i  <31;i++)  生成31个随机数 
        value[i] = random.nextInt(31)+1; system.out.println(valuel[random.nextInt(30)]); 随机获取
      

  12.   

    超牛算法:不论取多少个不重复的算法效率几基本不变。public class Ran { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int a[]=new int[31];
    int b[]=new int[2];//存放取到的随机数
    for(int i=0;i<31;i++){
    a[i]=i+1;
    }
    for(int j=0;j<2;j++){
    int p;
    p=(int)(Math.random()*(31-j));
    // System.out.println(p);
    b[j]=a[p];
    a[p]=a[8-j];
    }
    for(int i:b){
    System.out.println(i);
    }
    }}
      

  13.   

    Random r = new Random();  //创建一个新的随机数生成器 int i1 = r.nextInt(31)+1;  
    //返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。 int i2 = 0;  
    while(true) { 
       i2 = r.nextInt(31)+1; 
       if(i2 != i1) 
           break; 

    System.out.println("i1 = " + i1 + ", i2 = " i2);--------------
    正解
      

  14.   

    public class bbbb {
    public static void main(String[] args) {
    int a=(int)(Math.random()*31);
    int b=(int)(Math.random()*31);
    if (a!=b) {
    System.out.println(a);
    System.out.println(b);
    }
    }
    }
    嘿嘿 我也还是个学生啊刚学JAVA的 LS的前辈们写的我都看不懂 我不知道你看的懂不,。、、
    不过你说的有点像我们的一个课后习题。就是我上面打的那段代码