比如我想在0~15之间产生一组16个元素的随机数,数值各不相同,代码应该怎么写?

解决方案 »

  1.   

    这个问题我正好明天做,今天就先写下好了
    import java.util.*;
    import java.io.*;
    public class RandomNumbers {
    Random r=new Random(); public void RandomNumbers (){
    }
      
    public int randomNumber (int low,int high)
     { 
      int temp=-1;
      if (low<=high)
       {
      temp=low+r.nextInt(high);
      return temp;
       }
      return temp;
     }
    }调用:int int_data[]=new int[16];
    for (int i=0;i<int_data.length;i++)
    {
     int_data[i]=i;
    }
    RandomNumbers randomNuber=new RandomNumbers();int temp=0;
    for (int j=0;j<int_data.length;j++)
    {
     int order=randomNumber.randomNumber(0,15);
       
     temp=int_data[j];
     int_data[j]=int_data[order];
     int_data[order]=temp; 
    }
    没有写成完整的程序调试,反正看懂了就行
      

  2.   

    import java.util.Random;public class Nums { private int n = 10;
    private boolean[] used = new boolean[n];
    private Random rand = new Random();

    public int[] randNums() {
    int[] result = new int[n];
    o: for (int i = 0; i < n; )
    while (true) {
    int p = rand.nextInt(n);
    if (!used[p]) {
    result[i] = p;
    used[p] = true;
    i++;
    continue o;
    }
    }
    return result;
    } public static void main(String[] args) {
    int[] nums = new Nums().randNums();
    for (int i = 0; i < nums.length; i++) {
    System.out.println(nums[i]);
    }
    }

    }
      

  3.   

    洗牌的程序就是这样的。
    如果你只是要打乱一个序列的话,直接用Collections.shuffle()更好一些。
      

  4.   

    //重置密码
    String pwd="";
    for(int j=0;j<8;j++){
    number = random.nextInt(15);
    = pwd.concat(new Integer(number).toString());
    }
      

  5.   

    int(1+Math.random()*15);
    这句话就可以产生一个1-15之间的随机数
      

  6.   

    int(1+Math.random()*15);
    这个是最方便的了
      

  7.   

    class L
    {
    public L(int k,int n)
    {
      int[] numbers = new int[n];
      for (int i = 0; i < numbers.length; i++)
      numbers[i] = i + 1;
      int[] result = new int[k];
      for (int i = 0; i < result.length; i++)
      {  
      int r = (int) (Math.random() * n);
      result[i] = numbers[r];
      numbers[r] = numbers[n - 1];
      n--;
      }
      Arrays.sort(result); 
      for (int i=0;i<k;i++)
      System.out.print(result[i]+" ");
          }
    }
      

  8.   

    import java.util.Random;public class Test {
    private static Random random = new Random(); private static int intRand() {
    return Math.abs(random.nextInt()) % 10 + 1;
    } private static void print(int[] arrays) {
    for (int i : arrays) {
    System.out.print(i + " ");
    }
    } private static boolean isInArray(int[] arrays, int value) {
    boolean result = false;
    for (int i = 0; i < arrays.length; i++) {
    if (arrays[i] == value)
    return true;
    }
    return result;
    } public static void main(String[] args) {
    int value;
    int[] arrays = new int[10]; for (int i = 0; i < arrays.length; i++) {
    do {
    value = intRand();
    } while (isInArray(arrays, value));
    arrays[i] = value;
    }
    print(arrays);
    }
    }