java 随机不重复整数 java生成随机数不重复_System


java 随机不重复整数 java生成随机数不重复_不重复随机数_02

java产生不重复随机数【史上最直接】

①本程序分“包含0”和“不包含0”两种情形,可自由选择。
②当“数组长度”大于“不重复随机数个数”程序会自动退出。
③若想自定义修改不重复随机数范围,可在源代码自行修改。

import java.util.Random;
import java.util.Scanner;
public class CSDN_procut {
    public static void main(String[] args) {
        Random suiji = new Random();
        Scanner input = new Scanner(System.in);

        int kz;


        System.out.print("你想生成的不重复随机数范围是?不重复随机数范围包含0请按4,不重复随机数范围不包含0请按6");
        int xz=input.nextInt();
        switch (xz)
        {
            case 4:
            {
                System.out.println("好的,你已经选择包含0");
                System.out.println("你想产生的不重复随机数范围是0到多少?请输入");
                kz=input.nextInt();


                int leng = 0;
                System.out.println("请输入数组长度");
                leng = input.nextInt();
                int[] array;
                array = new int[leng];


                if(array.length>kz+1)
                {
                    System.out.println("数组长度大于随机数个数,会有重复的,请保证数组长度小于等于随机数个数");
                    break;
                }


                int i=0;
                int k=0;
                int t=0;
                int j=0;

                for(;i<leng;++i)
                {
                    if(k==0)
                    {
                        array[i]=suiji.nextInt(kz+1);
                        k=k+1;
                    }
                    else
                    {
                        t=suiji.nextInt(kz+1);

                        for(j=0;j<k;++j)
                        {

                            if(array[j]==t)
                            {
                                j=-1;
                                t=suiji.nextInt(kz+1);
                                continue;
                            }

                        }
                        array[j]=t;
                        ++k;
                    }


                }


                System.out.println();
                System.out.println();

                for(int kk=0;kk<array.length;++kk)
                {
                    System.out.println("第"+(kk+1)+"个数据是:"+array[kk]);
                }

                break;
            }

            case 6:
            {
                System.out.println("好的,你已经选择不包含0");
                System.out.println("你想产生的不重复随机数范围是1到多少?请输入");
                kz=input.nextInt();



                int leng = 0;
                System.out.println("请输入数组长度");
                leng = input.nextInt();
                int[] array;
                array = new int[leng];


                if(array.length>kz)
                {
                    System.out.println("数组长度大于随机数个数,会有重复的,请保证数组长度小于等于随机数个数");
                    break;
                }



                int i=0;
                int k=0;
                int t=0;
                int j=0;

                for(;i<leng;++i)
                {
                    if(k==0)
                    {
                        array[i]=suiji.nextInt(kz)+1;
                        k=k+1;
                    }
                    else
                    {
                        t=suiji.nextInt(kz)+1;

                        for(j=0;j<k;++j)
                        {

                            if(array[j]==t)
                            {
                                j=-1;
                                t=suiji.nextInt(kz)+1;
                                continue;
                            }

                        }
                        array[j]=t;
                        ++k;
                    }


                }


                System.out.println();
                System.out.println();

                for(int kk=0;kk<array.length;++kk)
                {
                    System.out.println("第"+(kk+1)+"个数据是:"+array[kk]);
                }
                break;
            }

            default:
            {
                System.out.println("输入有误,请重新输入");
                break;
            }

        }





    }
}