`
莫生气
  • 浏览: 866760 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java中产生随机数

    博客分类:
  • Java
阅读更多
import java.util.Random;
/**
* Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。
* 它可以产生int、long、float、double以及Goussian等类型的随机数。
* java.lang.Math中的方法random()只产生double型的随机数。
*/
public class RandomNumber{

public static void main(String[] args) {

  // 使用java.lang.Math的random方法生成随机数
  System.out.println("Math.random(): " + Math.random());

  // 使用不带参数的构造方法构造java.util.Random对象
  System.out.println("使用不带参数的构造方法构造的Random对象:");
  Random rd1 = new Random();
  // 产生各种类型的随机数
  // 按均匀分布产生整数
  System.out.println("int: " + rd1.nextInt());
  // 按均匀分布产生长整数
  System.out.println("long: " + rd1.nextLong());
  // 按均匀分布产生大于等于0,小于1的float数[0, 1)
  System.out.println("float: " + rd1.nextFloat());
  // 按均匀分布产生[0, 1)范围的double数
  System.out.println("double: " + rd1.nextDouble());
  // 按正态分布产生随机数
  System.out.println("Gaussian: " + rd1.nextGaussian());

  // 生成一系列随机数
  System.out.print("随机整数序列:");
  for (int i = 0; i < 5; i++) {
   System.out.print(rd1.nextInt() + "  ");
  }
  System.out.println();

  // 指定随机数产生的范围
  System.out.print("[0,10)范围内随机整数序列: ");
  for (int i = 0; i < 10; i++) {
   // Random的nextInt(int n)方法返回一个[0, n)范围内的随机数
   System.out.print(rd1.nextInt(10) + "  ");
  }
  System.out.println();
  System.out.print("[5,23)范围内随机整数序列: ");
  for (int i = 0; i < 10; i++) {
   // 因为nextInt(int n)方法的范围是从0开始的,
   // 所以需要把区间[5,28)转换成5 + [0, 23)。
   System.out.print(5 + rd1.nextInt(23) + "  ");
  }
  System.out.println();
  System.out.print("利用nextFloat()生成[0,99)范围内的随机整数序列: ");
  for (int i = 0; i < 10; i++) {
   System.out.print((int) (rd1.nextFloat() * 100) + "  ");
  }
  System.out.println();
  System.out.println();

  // 使用带参数的构造方法构造Random对象
  // 构造函数的参数是long类型,是生成随机数的种子。
  System.out.println("使用带参数的构造方法构造的Random对象:");
  Random ran2 = new Random(10);
  // 对于种子相同的Random对象,生成的随机数序列是一样的。
  System.out.println("使用种子为10的Random对象生成[0,10)内随机整数序列: ");
  for (int i = 0; i < 10; i++) {
   System.out.print(ran2.nextInt(10) + "  ");
  }
  System.out.println();
  Random ran3 = new Random(10);
  System.out.println("使用另一个种子为10的Random对象生成[0,10)内随机整数序列: ");
  for (int i = 0; i < 10; i++) {
   System.out.print(ran3.nextInt(10) + "  ");
  }
  System.out.println();
  // ran2和ran3生成的随机数序列是一样的,如果使用两个没带参数构造函数生成的Random对象,
  // 则不会出现这种情况,这是因为在没带参数构造函数生成的Random对象的种子缺省是当前系统时间的毫秒数。

  // 另外,直接使用Random无法避免生成重复的数字,如果需要生成不重复的随机数序列,需要借助数组和集合类
  //本书第4章将给出解决方法。
}
}

运行结果:
C:\>java  RandomNumber
Math.random(): 0.525171492959965
使用不带参数的构造方法构造的Random对象:
int: 636539740
long: -752663949229005813
float: 0.87349784
double: 0.4065973309853902
Gaussian: 0.4505871918488808
随机整数序列:1936784917  1339857386  -1185229615  1883411721  1409219372
[0,10)范围内随机整数序列: 1  1  5  5  9  0  1  0  2  4
[5,23)范围内随机整数序列: 9  13  26  18  11  27  26  12  21  8
利用nextFloat()生成[0,99)范围内的随机整数序列: 1  47  72  59  49  86  80  88  55   82

使用带参数的构造方法构造的Random对象:
使用种子为10的Random对象生成[0,10)内随机整数序列:
3  0  3  0  6  6  7  8  1  4
使用另一个种子为10的Random对象生成[0,10)内随机整数序列:
3  0  3  0  6  6  7  8  1  4
分享到:
评论
1 楼 popnicelike 2010-02-03  
谢谢楼主,帮我解除了疑惑。

相关推荐

    java中产生随机数的两个方法

    Java 中产生随机数的两个方法 在 Java 语言中,产生随机数的需求非常常见,无论是在游戏开发、数据模拟还是其他应用场景中,随机数都是必不可少的。Java 中提供了两种方式来生成随机数:一是通过 Math.random() ...

    在Java中产生随机数的两个方法

    ### 在Java中产生随机数的两种方法 在Java编程中,生成随机数是常见的需求之一。根据提供的文件信息,本文将详细介绍两种在Java中生成随机数的方法:通过`Math.random()`函数与`java.util.Random`类。这两种方法各...

    JAVA中的随机数产生和排序

    在Java编程语言中,生成随机数和排序是两个常见的任务,它们在许多应用场景中都扮演着重要角色。这里我们将深入探讨这两个主题,并提供一些解决实际问题的方法。 首先,让我们来看看如何在Java中生成随机数。Java...

    Java产生随机数并存入文件

    利用JAVA语言产生某一特定范围的随机数,并且能够将随机数保存在具体的文件中。

    Java产生随机数的两种方式

    在Java编程语言中,生成随机数是常见的需求,可以用于模拟、测试、加密等多种场景。本文将详细探讨Java中生成随机数的两种主要方法:`java.lang.Math.random()`静态方法和`java.util.Random`类。 首先,我们来看`...

    java产生随机数的几种方式

    在Java编程语言中,生成随机数是常见的需求,可以用于各种场景,如模拟随机事件、游戏编程、加密算法等。以下将详细介绍Java中生成随机数的几种方式。 1. **Math.random() 方法** `Math.random()` 是Java中最常用...

    介绍java 产生随机数式

    - 对于更复杂的需求,例如产生符合特定概率分布的随机数(如正态分布、泊松分布等),可以使用Apache Commons Math库或Java 8引入的`java.util.stream.DoubleStream`配合`IntStream`生成。 总的来说,Java的`...

    Java获取计算机信息和产生随机数

    主要是一个Java获取计算机基本信息并且在Web页面上以ExtJs4的图表展示,这里删除了ExtJs4的资源和一个算法产生验证码,因为这个算法最终使用到了产品中,所以就把这个测试的类删除了,各位不好意思了

    Java产生随机数代码 各种方法

    在Java编程语言中,生成随机数是常见的需求,可以用于各种场景,如模拟随机行为、测试、加密等。本文将详细介绍几种在Java中生成随机数的方法,并以代码示例进行说明。 1. 使用`Math.random()`函数: `Math.random...

    Java基础之Random随机数.docx

    在Java中,Random类提供了产生随机数的方法,下面将详细介绍Random类的使用。 Random类的使用 Random类是Java中生成随机数的主要类,它提供了多种方法来生成随机数。下面是Random类的一些常用方法: * `nextInt()...

    java 随机数

    3. **通过`java.util.Random`类产生随机数**:这是Java中最专业、功能最强大的随机数生成工具类,提供了丰富的API来生成各种类型的随机数,包括整数、浮点数、布尔值等。`Random`类使用线性同余公式,以48位的种子为...

    java产生随机数的两个方法.doc

    Java产生随机数的两个方法 Java语言中生成随机数有多种方法,其中两种常用的方法是利用Math.random()方法和Random类。下面我们将逐步讲解这两个方法的使用和实现。 一、利用Math.random()方法生成随机数 Math....

    java产生不重复的随机数

    java代码产生不重复的随机数,有用处,可以参考!

    JAVA中一类随机数生成方法设计思想.pdf

    在 JAVA 中,传统的随机数产生方法有两种:一种是使用 java.lang.Math.random() 静态方法,产生随机数范围是 [0, 1) ;另一种是创建 java.util.Random 对象,再利用 nextInt()、nextFloat() 等函数产生随机整数、...

    Java产生随机数的两种方式.doc

    在Java编程语言中,生成随机数是常见的需求,主要应用于各种场景,如模拟、测试、加密等。本篇文章将详细介绍Java中生成随机数的两种主要方法:使用`java.lang.Math.random()`静态方法和创建`java.util.Random`对象...

    Java中的随机数详解

    Java中的随机数详解 Java中的随机数详解主要介绍了Java中的随机数种类、生成方式、使用方法和注意事项等知识点。 随机数种类: 在Java中,随机数可以分为两类:真随机数和伪随机数。真随机数是通过某种物理现象或...

    java随机数操作类

    一个产生随机数的操作类,可自由定制随机数的类型个数等 用于产生校验码等

    java生成十个不重复的随机数

    在Java编程中,生成十个不重复的随机数是一项常见的任务,尤其在进行数据模拟、测试或者游戏设计等场景。要实现这个功能,我们需要利用到Java的集合框架和Math类中的随机数生成方法。下面我们将详细讲解如何实现这个...

    JAVA小程序 有10个进程同步产生随机数 并分别写入两个文件 并排序输出

    JAVA小程序 有10个进程同步产生随机数 并分别写入两个文件 并排序输出

Global site tag (gtag.js) - Google Analytics