比如是齐鲁彩票中的23选5一样,数可重复

解决方案 »

  1.   

    Random random = new Random();
    for (int i = 0; i < 5; i++)
    System.out.println((int) ((24 - 1) * random.nextFloat()) + 1);
      

  2.   

    把这23个数定义到一个一维数组中
     int[] a={这23个数}
      随机产生一个0-22的数,那么对应的a[i]也就是这个数了
     连续产生5次不就出来了吗
      

  3.   

    不知道LZ所说的23个数,是指有23个数的数组,还是说从1到23的数字int[] v = new int[5];
    for(int i=0; i<v.length; i++) {
        int randomNum = ((int)Math.random()*1000)%23; //1000是个基数(>23)可以自己定义
        v[i] = yourArray[randomNum]; //如果是23个数的数组的话
        //v[i] = randomNum; //如果是1到23的数字的话
    }
      

  4.   

    import java.util.Random;public class SimpleTest {

    public static void main(String[] args) {

    int b;
    Random r = new Random();

    for(int i = 0 ; i < 5 ; i ++)
    {
    do
    {
    b = r.nextInt(24);
    }while(b == 0); System.out.println(" int value = " + b);
    }
    }
    }
      

  5.   

         数可重复的都有人给实现了,下面这是个不可重复的(23选5):
        
    ArrayList<Integer> intList = new ArrayList<Integer>();
    for(int i=1;i<=23;i++){
    intList.add(i);
    }
    System.out.println(intList);

    for(int i=1;i<=5;i++){
    int index =(int)(Math.random()*intList.size()+1);

    System.out.print(intList.get(index-1)+"\t");
    intList.remove(index-1);

    }
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
    23 1 7 8 4
      

  6.   

    看看这个:
    package practice;public class TryRa {
    public static void main(String[] args) {
    int a[]=new int[5];
         for(int i=0;i<5;i++){
          a[i]=(int) (Math.random() * 23);
          System.out.print(a[i]+"\t");
          
         }
         
    }}
      

  7.   

       (int) (Math.random() * 23); //只能取1-22