`

Java基础-随机数的生成

    博客分类:
  • JAVA
 
阅读更多

  生活不要太累,不让工作搞的太疲惫,困了倒下就睡,

  有一天想在程序里生成一个随机数,这个原来应该是经常用的,但一时想不想来了,现在真的是老了,呵呵。 然后在网上搜索,别人总结的,如下:
    ——    ——    ——    —— —— ——    —— —— ——    —— —— ——    —— —— ——    ——

一、  在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。
(这个也是最早经常使用的,后来被Random代替,但却一点也想不起来了,:(    

                

                

  		  double qinshiqi=Math.random();
                  int qinShiR=(int)(qinshiqi*100);
                  //生成100内的随机数,最原始用

 

 


二、在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法。

 

写道
Random random=new java.util.Random(); 
float aRandom=random.nextFloat();
 int qinR=(int)(aRandom*100);
 //生成100内的随机数,最原始用法

 //现在用法
 int shiR=random.nextInt(100);

 //生成一个随机数
 int qiR=random.nextInt();
 

三、在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内啦

其实在Random的默认构造方法里也是使用上面第三种方法进行随机数的产生的


对于方法二中的Random类有以下说明:

java.util.Random类有两种方式构建方式:带种子和不带种子

不带种子:
此种方式将会返回随机的数字,每次运行结果不一样

public class RandomTest {


public static void main(String[] args) {
java.util.Random r=new java.util.Random();
for(int i=0;i<10;i++){

System.out.println(r.nextInt());

}



}
带种子:
此种方式,无论程序运行多少次,返回结果都是一样的

public static void main(String[] args) {
java.util.Random r=new java.util.Random(10);
for(int i=0;i<10;i++){
System.out.println(r.nextInt());
}
}

两种方式的差别在于

(1) 首先请打开Java Doc,我们会看到Random类的说明:

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

如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。为了保证实现这种特性,我们为类Random指定了特定的算法。为了 Java 代码的完全可移植性,Java 实现必须让类 Random 使用此处所示的所有算法。但是允许 Random 类的子类使用其他算法,只要其符合所有方法的常规协定即可。

Java Doc对Random类已经解释得非常明白,我们的测试也验证了这一点。

(2) 如果没有提供种子数,Random实例的种子数将是当前时间的毫秒数,可以通过System.currentTimeMillis()来获得当前时间的毫秒数。打开JDK的源代码,我们可以非常明确地看到这一点。

/**
* Creates a new random number generator. Its seed is initialized to
* a value based on the current time:
* Random() { this(System.currentTimeMillis()); }java.lang.System#currentTimeMillis()
*/
public Random() { this(System.currentTimeMillis()); }


另外:

random对象的nextInt(),nextInt(int n)方法的说明:

int nextInt()
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n)
返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。

分享到:
评论

相关推荐

    0-100随机数生成器

    总的来说,"0-100随机数生成器"是一个使用JAVA编写的、可以在无JAVA环境的机器上运行的工具,它利用了JAVA的`Random`类或其他随机数生成机制,可能包含用户友好的界面和/或定制的随机数算法。对于那些需要在多种环境...

    Java简易随机数生成

    Java简易随机数生成 下载完请输入测试代码 public static void main(String[] args) { System.out.println(random(50,100));//example System.out.println(random(50.0,100.0)); }

    java随机数生成器

    可以生成制定范围内的随机数。有GUI界面

    java-随机数生成

    Java随机数生成 随机数有三种生成方式 1.通过Math.random()方法 2.通过System.currentTimeMillis()方法获取毫秒数, 3.通过Random类 ——————————————————————使用开发工具MyEclipse10 第一种:...

    电子-随机数测试实验.rar

    在大多数编程语言中,都有内置的随机数生成函数,例如在Python中,可以使用`random`模块,Java中有`java.util.Random`类,C++中的`&lt;random&gt;`库等。这些函数通常基于特定的算法,如线性同余法、Mersenne Twister或PCG...

    Java生成32位随机数,8位随机数

    Java生成32位随机数,短位随机数工具类

    java课程设计-随机数猜测

    3. **随机数生成**: - 使用`java.util.Random`类生成1到100之间的随机整数,通过`nextInt(int bound)`方法实现。 4. **条件判断**: - 用`if`语句检查用户输入的猜测是否正确,以及猜测次数是否超过10次。 - ...

    java生成16位随机数

    java生成16位随机数

    java 求最大的随机数

    在Java编程语言中,生成随机数...`do-while`循环在某些情况下可以与随机数生成结合使用,确保至少执行一次循环体。如果你需要更具体的信息,例如关于`DoWhileCycle_02.java`的代码细节,可能需要查看源代码或图像内容。

    java学习资料-实例解析常用Java随机数生成

    Java是一种广泛使用的编程语言,它的功能丰富,包括生成随机数的能力。在Java中,生成随机数主要有两种方式:使用`Math....在学习Java时,掌握随机数生成是必不可少的一部分,它有助于编写更灵活、更具动态性的程序。

    java随机数生成,java基础

    java java随机数生成

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

    JAVA 中一类随机数生成方法设计思想 本文讨论了JAVA 中一类随机数生成方法的设计思想,着重介绍了定长序列元素的随机化设计思想。通过移植 C++ 标准模板库的随机函数,可以实现 JAVA 中给定基本数据类型数组、对象...

    java根据比例概率生成随机数

    Java 根据比例概率生成随机数 概率随机数是指根据事先设定的概率分布生成随机数的方法。在 Java 中,可以使用 Math.random() 方法生成随机数,然后根据概率分布判断返回的数字。 在给定的代码中,作者定义了一个 ...

    Java基础之Random随机数.docx

    Java基础之Random随机数 Java中的随机数使用率非常高,因此掌握随机数的使用是非常重要的。在Java中,Random类提供了产生随机数的方法,下面将详细介绍Random类的使用。 Random类的使用 Random类是Java中生成...

    Java随机数生成主键(16位)

    oracle自动生成主键的工具类,就一个简单的方法。

    java随机数4-36位

    在Java编程语言中,生成随机数是一项常见的任务,特别是在创建安全的验证码系统或者构建订单编号时。本篇文章将深入探讨如何在Java中生成指定范围内的随机数,包括4位到36位的数字,以及结合时间戳来创建更复杂的30...

    Java代码实现随机生成汉字的方法

    我们可以使用随机数生成器生成随机的区号和位号,然后将其转换为汉字。 在上面的代码中,我们使用了 Random 类来生成随机的高位字节和低位字节,然后将其组合成一个汉字。我们使用了GBK编码来表示汉字,因为GBK编码...

    随机数生成器(hex)

    了解这些基本概念后,我们可以编写自己的随机数生成器,或者使用编程语言内置的库函数,例如Python的`random`模块,Java的`java.util.Random`类等。在使用时,我们需要根据需求选择合适的生成器类型、输出格式和参数...

    java实现随机数生成器

    java随机数生成器的基本原理 java随机数生成器的基本原理是使用java的Random类来生成随机数。Random类是一个伪随机数生成器,它可以生成一个随机的整数序列。通过使用Random类,我们可以生成一个随机数,范围从0到...

    java产生随机数的几种方式

    `java.util.Random` 类提供了更丰富的随机数生成功能。通过创建 `Random` 类的实例,你可以生成各种类型(整数、长整数、浮点数等)的随机数,并且可以设置种子以获得可预测或非重复的序列。例如,生成一个1到100的...

Global site tag (gtag.js) - Google Analytics