有100个自然数,随机放入数组大小为98的数组中,然后输出没放入数组的两个自然数的值

解决方案 »

  1.   


    Random random = new Random();
    Integer[] array = new Integer[100];
    for(int i = 0; i < 100; i++) {//这里面怎么赋值随便
    array[i] = i;
    }

    List<Integer> t = Arrays.asList(array);
    List<Integer> list = new ArrayList<Integer>( t );
    for(int i = 99; i >= 2; i--) {
    list.remove( random.nextInt(i + 1) );
    }

    System.out.println(list.get(0) + ", " + list.get(1));
      

  2.   


                    int[] arrput = new int[100];
    int[] arrint = new int[100];
    Random ran = new Random();
    //放入100个数
    for(int i=0;i<100;i++){
    arrput[i] = i+1;
    } System.out.println("剩下的2个数:");
    for(int i=0;i<100;i++){
    int j = ran.nextInt(arrput.length - i);
    // 得到那个位置的数值
    arrint[i] = arrput[j];
    // 将最后一个未用的数字放到这里
    arrput[j] = arrput[arrput.length - 1 - i];
    if(i==98 || i==99){
    System.out.println(arrput[j]);
    }
    }
      

  3.   


    int num[]=new int[100];for(int i=0;i<num.length;i++){num[i]=i+1;}Random ran=new Random();for(int i=num.length-1;i>0;i--){   int ranNum=ran.nextInt(i);
       //把num数组ranNum下标的数换到最后一位   int temp=num[ranNum];   num[ranNum]=num[i];   num[i]=temp;
    }随机排序完数组,然 后取出两个固定位置的数就可以了。