欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java产生不重复随机数

程序员文章站 2022-03-26 21:57:17
java产生不重复随机数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.o...

java产生不重复随机数
java产生不重复随机数

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;
            }

        }





    }
}

本文地址:https://blog.csdn.net/qweskdldlsg/article/details/112664597