`
myway84
  • 浏览: 202999 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类
最新评论

java.util.Random学习笔记

阅读更多


在看think in java里41页有句代码random() rand=new random(47);
加个47什么意思,看他的解释没看明白
问题补充:
种子是什么意思。。。?就是从47开始随即生成数么?不加又会怎样?
答:
这个47就是一个种子。你也可以用其它的整数如:1,48。。。。。等
不同的种子会产生不同的随机数。thinking in java的作者他用了一个47.也没什么特殊。用其它也可以

补------------
不是从47开始生成数。这么说吧:
Random() rand1=new Random(47);
Random() rand2=new Random(27);
则rand1.nextInt()的值不会等于rand2.nextInt()
就是加了一个种子后就可以使你调用方法后产生的数值不相同。

Random() rand=new Random();这样不加数字也可以。种子就是用来区分各个Random对象吧,可以说。

下面是官方解释:
“此类的实例用于生成伪随机数流。此类使用 48 位的种子,使用线性同余公式对其进行修改(请参阅 Donald Knuth 的《The Art of Computer Programming, Volume 2》,第 3.2.1 节)。

如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。为了保证属性的实现,为类 Random 指定了特定的算法。为了 Java 代码的完全可移植性,Java 实现必须让类 Random 使用此处所示的所有算法。但是允许 Random 类的子类使用其他算法,只要其符合所有方法的常规协定即可。
二.
Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。它可以产生int、long、float、double以及Goussian等类型的随机数。这也是它与java.lang.Math中的方法Random()最大的不同之处,后者只产生double型的随机数。
  类Random中的方法十分简单,它只有两个构造方法和六个普通方法。
  构造方法:
  (1)public Random()
  (2)public Random(long seed)
  Java产生随机数需要有一个基值seed,在第一种方法中基值缺省,则将系统时间作为seed。
  普通方法:
  (1)public synonronized void setSeed(long seed)
  该方法是设定基值seed。
  (2)public int nextInt()
  该方法是产生一个整型随机数。
  (3)public long nextLong()
  该方法是产生一个long型随机数。
  (4)public float nextFloat()
  该方法是产生一个Float型随机数。
  (5)public double nextDouble()
  该方法是产生一个Double型随机数。
  (6)public synchronized double nextGoussian()
  该方法是产生一个double型的Goussian随机数。
  例2 RandomApp.java。
  //import java.lang.*;
  import java.util.Random;

  public class RandomApp{
   public static void main(String args[]){
    Random ran1=new Random();
    Random ran2=new Random(12345);
    //创建了两个类Random的对象。
    System.out.println("The 1st set of random numbers:");
    System.out.println("\t Integer:"+ran1.nextInt());
    System.out.println("\t Long:"+ran1.nextLong());
    System.out.println("\t Float:"+ran1.nextFloat());
    System.out.println("\t Double:"+ran1.nextDouble());
    System.out.println("\t Gaussian:"+ran1.nextGaussian());
    //产生各种类型的随机数
    System.out.print("The 2nd set of random numbers:");
    for(int i=0;i<5;i++){
     System.out.println(ran2.nextInt()+" ");
     if(i==2) System.out.println();
     //产生同种类型的不同的随机数。
     System.out.println();
    }
   }
  }
分享到:
评论

相关推荐

    java李兴华学习笔记之Java常用类库

    ### Java李兴华学习笔记之Java常用类库 #### 一、课程介绍及知识点概览 根据提供的资料,“Java李兴华学习笔记之Java常用类库”这份文档来源于北京MLDN软件实训中心的教学资料,主要涵盖了Java编程语言中常用类库...

    java学习笔记

    ### Java学习笔记:Java.util包中的重要API及应用 #### 随机数生成与操作:`java.util.Random` 在Java编程中,随机数的生成是常见需求之一,尤其是在模拟、游戏开发等领域有着广泛的应用。Java标准库中的`java....

    Java基础学习笔记.zip

    这份"Java基础学习笔记.zip"包含了多个主题,涵盖了Java语言的基础到进阶内容,非常适合初学者和有经验的开发者复习巩固。 首先,我们来看"day03【List、Set】-笔记.pdf",这部分主要讲解了Java集合框架中的两种...

    Javajdk5学习笔记

    以下是对"Javajdk5学习笔记"中可能包含的知识点的详细解析: 1. **自动装箱与拆箱**:JDK 5引入了自动装箱和拆箱功能,使得基本类型和它们对应的包装类之间可以无缝转换,提高了代码的简洁性。例如,`Integer i = ...

    java学习笔记整理

    ### Java学习笔记整理 #### 1. Java简介 ##### 1.1 计算机编程和开发语言 计算机系统由硬件系统和软件系统组成。软件系统又进一步细分为系统软件和应用软件。其中,系统软件包括操作系统、编译系统、数据库系统等...

    Java课上笔记

    在Java中,我们可以使用java.util.Random类来生成随机数。比如,设计一个抽奖系统,可以设定一个奖池,然后生成一个随机索引,对应奖池中的一个奖项。为了确保公平,你需要理解概率的基本原理,并确保所有奖项有等...

    良葛格Java JDK 5.0学习笔记

    本学习笔记将聚焦于JDK 5.0的关键更新,旨在帮助开发者理解和掌握这个里程碑式的Java版本。 1. **类型注解 (Type Annotations)** JDK 5.0引入了泛型,允许在类、接口和方法声明中使用类型参数,提高了代码的类型...

    JAVA笔记总结

    2. **输入输出操作**:在Java中,可以使用`java.util.Scanner`类进行基本的用户输入,如`nextInt()`、`nextFloat()`等方法读取整数和浮点数。若要读取包含空格的字符串,可以使用`nextLine()`。另外,`java.io....

    黑马程序员Java基础视频辅导班课堂笔记总结Day08

    此外,我们还学习了获取随机数的两种方式:使用java.lang.Math.random()方法获取一个0-1(不含1)之间的double值,使用java.util.Random中的nextXXX方法获取1-100之间的随机数。 最后,我们学习了final关键字的使用...

    狂神说笔记,个人觉得不赖

    【狂神说笔记】是一份深受Java学者喜爱的个人学习笔记,它以其深入浅出的讲解方式和实用的内容,赢得了广大编程爱好者的好评。这份笔记主要聚焦于Java编程语言的基础和进阶知识,旨在帮助Java学者更好地理解和掌握这...

    个人笔记--Java_API

    ### Java核心API知识点详解 #### 一、集合框架 **1.1 什么是集合** 集合是Java编程语言中用于存储和操作多个元素的一种容器。它提供了动态管理元素的...以上就是Java核心API中的关键知识点,希望对学习者有所帮助。

    java笔记(数组到javaweb)

    - 或使用`java.util.Random`类生成指定范围内的随机数。 9. **访问修饰符**: - `private`: 仅限类内部访问 - `public`: 公开,任何地方都能访问 - `protected`: 同一包内和子类可以访问 - `default`: 同一包...

    java代码-10、用Java实现如下的骰子游戏: 丢下两个骰子,若总值为7点,则赢,否则输。

    - Java的`java.util.Random`类用于生成随机数。创建一个Random对象后,我们可以调用`nextInt(int bound)`方法来获取指定范围内的随机整数。对于骰子,我们通常需要在1到6之间生成随机数。 3. **用户交互**: - ...

    java代码-随机点名系统

    在Java中实现随机点名功能,我们可以使用`java.util.Random`类。这个类提供了生成随机数的方法,可以用来选取名字。例如,我们可以创建一个ArrayList存储所有名字,然后使用Random类的nextInt()方法生成一个在0到...

    java基础班重点需要可以下载

    6. **随机数**:`java.util.Random`类用于生成随机数。例如,`r.nextInt(10)`会生成一个0到9之间的随机整数。 7. **位运算**:位运算包括取模(%),除法(/),加法(+),减法(-),乘法(*),左移(),右移...

    java学习(二).pdf

    - **随机数生成**:通过`java.util.Random`类可以生成随机数。 - 获取指定范围内的随机整数:`int num = r.nextInt(上限);`(上限不包含在内) 以上是《Java学习(二)》的主要知识点概述,这些内容对于初学者来说...

    java基础知识笔记总结

    ### Java基础知识笔记总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是通过特定的计算机语言来编写指令,让计算机能够执行一系列任务的过程。 2. **Java语言概述,历史、特点** - Java是由Sun ...

    笔记实验六,spark,大数据分析

    - 使用 `scala.util.Random.nextInt` 生成随机数以确定文件名和选择句子。 - 创建 `PrintWriter` 对象并将随机选择的句子写入文件。 - 关闭文件以确保内容被正确写入。 #### 实验二:实时数据分析 - **目标**:...

Global site tag (gtag.js) - Google Analytics