78 求随机数 不重复的值

发布时间 2023-06-09 20:55:20作者: 胖豆芽
package com.fqs.test;

import java.util.Random;
import java.util.Scanner;

public class hello {
    public static void main(String[] args) {
        //获取三个不相等的随机数
        int weishu=6;
        getNo(weishu);


    }
   /*//获取一个4位随机数的数组
    public static int[] getNum() {
        Random r=new Random();
        int []arrNum=new int[4];
        for(int i=0;i<4;i++){
              int num=r.nextInt(4);
              arrNum[i]=num;
        }
        return arrNum;
    }//获取数组*/

   /* //判断数组中是否有重复的
    public static void isFind(int arrNum[]) {
        boolean isFind=false;
        int count=0;//相等的次数
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < i; j++) {
                if(arrNum[i]==arrNum[j]){
                    count++;
                    isFind=true;
                }
            }
        }
        if(count==0){
            System.out.println("没有重复的");
        }
        else{
            System.out.println("有重复的");

        }


    }//判断重复*/

    //获取一个不重复的 位随机数
    public static void getNo(int weishu) {
        Random r=new Random();
        int []arr=new int[weishu];
        int temp=r.nextInt(100);//第一个随机数
        System.out.println("第一个随机数temp:"+temp);
        arr[0]=temp;//将第一个随机数放到数组中 下标0

            for (int i = 1; i <weishu; ) {
                int temp2=r.nextInt(100);//第二个随机数
                System.out.println("--其他随机数:"+temp2);
                boolean isFind=false;//在外循环与内循环之间设置isFind
                for (int j = 0; j <i ; j++) {

                    if(temp2==arr[j]){//内循环里做值之间的比较
                        isFind=true;
                        break;
                    }
                }
                //跳出内循环 在外循环里写将值赋值到数组中
                if(!isFind){
                    arr[i]=temp2;
                    i++;
            }


            }
        for (int i = 0; i < arr.length ; i++) {
            System.out.println("----------------");

            System.out.println("arr2["+i+"]:"+arr[i]);
        }

    }//结束找


}//类结束