首页 > 其他分享 >随机数

随机数

时间:2023-09-05 16:32:38浏览次数:31  
标签:Random int random num 随机数 public Math

java中生成不重复随机的数字  


 

Java中产生随机数

1 . 调用java.lang下面Math类中的random()方法产生随机数

        新建一个文件后缀名为java的文件,文件名取为MyRandom,该类中编写如下的代码:

     

public class MyRandom {
                  public static void main(String[] args) {
                          int  radom = (int)(Math.random()*10);
                          System.out.println(radom); 
                  }
          }

        其中Math.random() //产生0~1之间的一个随机小数。

        产生一个0~9之间的整数为:(int)(Math.random()*10);

        产生一个1~10之间的整数则可以写着:(int)(Math.random()*10 + 1);

        以此类推:产生一个0~n之间的数就应写作:Math.random()*n;

       取出一个指定长度大小的随机正整数:

 

public static int buildRandom(int length) {
            int num = 1;
            double random = Math.random();
            if (random < 0.1) {
                 random = random + 0.1;
            } for (int i = 0; i < length; i++) {
                 num = num * 10;
            }
            return (int) ((random * num));
     }

 

2 . 调用java.util下面Random类,此类的实例用于生成伪随机数流,产生一个随机整数,则调用该类的nextInt()方法

      使用Random类之前,则在包下导入java.util.Random ;代码为:

import java.util.Random;
public class MyRandom {
     public static void main(String[] args) {
         Random rand = new Random();
        int rInt = rand.nextInt(10);
       System.out.println(rInt);
    }
}

其中Random rand = new Random()是创建一个新随机数生成器;rand.nextInt(int n)是从此随机数生成器的序列中取出的、在 0(包括)和指定值n(不包括)之间均匀分布的 int值。

Java中在指定的整数范围类,循环产生不相同的随机数

以产生6位20以内不相同的随即整数 为例如下:

public class MyRandom {
      public static void main(String[] args) {
           int n = 20;
          Random rand = new Random();
          boolean[]  bool = new boolean[n];
          int randInt = 0;
          for(int i = 0; i < 6 ; i++) {
               do {
                   randInt  = rand.nextInt(n);
               }while(bool[randInt]);
              bool[randInt] = true;
              System.out.println(randInt);
         }
    }
}

其中用布尔变量数组来存储是否生成了该数字。生成后,该数字作为布尔数组下表的对应布尔值变成了true,下一次生成该数字就会再次进入do...while循环生成数字直到产生没有生成过的数字。

 

例如:生成一个int类型的数组,长度为50的,并向其中随即插入0-50之间的数,并且不能重复。

代码如下:

public class MyRandom {
      public static void main(String[] args) {
        int[] intRandom = new int[50];
        List mylist = new ArrayList();  //生成数据集,用来保存随即生成数,并用于判断
        Random rd = new Random();
        while(mylist.size() < 50) {
            int num = rd.nextInt(51);           /**用集合的contains方法,来判断该数据集中是否包含随即数num,
            * 如果含有返回true。不包含就是false。!表示“非”。
            *!mylist.contains(num))是个布尔值,只有当该值为true时才执行其内部的操作,即为不包含时才执行。
          */
            if(!mylist.contains(num)) {  
               mylist.add(num);  //往集合里面添加数据。
            }
        }       /**给数值赋值*/
       for(int i = 0;i <mylist.size();i++) {
            intRandom[i] = (Integer)(mylist.get(i));
       }    }
}

 


http://gongyanghui1986.blog.163.com/blog/static/137485319201032610240896/

 



标签:Random,int,random,num,随机数,public,Math
From: https://blog.51cto.com/u_5513510/7373967

相关文章

  • C语言生成随机数问题
    (C语言生成随机数问题)rand函数rand-C++Reference(cplusplus.com)rand()函数是专门用来生成随机数的rand()返回的是0~RAND_MAX(32767)之间的随机数rand()函数在头文件stdlib.h中,使用前要导入这个头文件因为rand默认生成随机数范围是0~32767,这是一段很大的范围,所以我们需......
  • 解决datax输出文件随机数后缀问题
    原版的datax将数据库数据输出到指定文件时,会在该文件名后面加上一个随机数,不方便使用。这是datax源码中的问题,需要去https://github.com/alibaba/DataX下载源码并重新编译datax。参考datax源代码编译安装_程序员_IT序号网(itno.cn)修改./datax-master/txtfilewriter/src/main......
  • 生成随机数
    一:生成一个16位的随机数functiongenerateRandomNumber(){varrandomNumber=Math.floor(Math.random()*10000000000000000);varrandomString=randomNumber.toString().padStart(16,'0');returnrandomString;}varrandomNum=generateRandomNumber()......
  • ios 生成一个动态的随机的头像/随机数的操作
               在写项目的时候,可能会遇到这种情况,用到集中随机的颜色,或者头像等,首先:把所需要的图片放进一个数组当中imgsAry=@[@"t1.png",@"t2.png",@"t3.png",@"t4.png",@"t5.png",@"t6.png",@"t7.png",@"t8.png"];然后根据数组的count数生成一个随机......
  • Swift - 使用arc4random()、arc4random_uniform()取得随机数
    arc4random()这个全局函数会生成9位数的随机整数1,下面是使用arc4random函数求一个1~100的随机数(包括1和100)lettemp:Int=Int(arc4random()%100)+1print(temp)2,下面是使用arc4random_uniform函数求一个1~100的随机数(包括1和100)lettemps:Int=Int(arc4random_uniform(10......
  • 自制随机数
    我昨天发现了一个好玩的东西,今天打算记录下来我们在写随机数的时候,一般会用到Random///<summary>///产生重复的随机数///</summary>publicstaticvoidPrint1(){for(inti=0;i<10;i++){Randomrd=newRandom();varrds......
  • C# 短时间内随机数生成
    计算机无法生成真正意义上的完全随机数字。程序生成的所谓随机数实际上是通过一系列复杂的计算,基于一个固定的随机种子来模拟随机性,因此这些数字被称为伪随机数。换句话说,如果使用相同的随机种子,生成的随机数也会相同。常见的随机数生成方法包括平方取中法和线性同余法,而常用的随......
  • 设置随机数的生成起点
    代码结果展示......
  • 某公司笔试题 - 明明的随机数(附python代码)
    #明明生成了N个1到500之间的随机整数,请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。#数据范围:1<=n<=1000,输入的数字大小满足1<=val<=500importrandomimportnumpyasnptimes=input('请输入需要......
  • 题解 LuoguP3306 [SDOI2013] 随机数生成器
    题目链接:【LuoguP3306】。前置知识OI-Wiki:快速幂,扩展欧几里得算法(exgcd),BabyStep,GiantStep算法。题意很清楚,不说。分析当\(t=x\)时答案很明显为\(1\),即在第一天就可以读到。当\(t\neqx\)时当\(a=0\)时观察一下规律:\[x_1\equivx_1\pmod{p}\]\[x_2\equivb......