简单介绍

Java中存在着两种Random函数

一、java.lang.Math.Random;

  调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。

二、java.util.Random

  Random()的两种构造方法:

     1、Random():创建一个新的随机数生成器。

     2、Random(long seed):使用单个 long 种子创建一个新的随机数生成器。

    我们可以在构造Random对象的时候指定种子(这里指定种子有何作用,请接着往下看)

    如:Random r1 = new Random(20);或者默认当前系统时间的毫秒数作为种子数:Random r1 = new Random();

    需要说明的是:你在创建一个Random对象的时候可以给定任意一个合法的种子数,种子数只是随机算法的起源数字,和生成的随机数的区间没有任何关系。

    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型随机数。

    6、public double nextDouble() 该方法是产生一个Double型随机数。

    7、public synchronized double nextGoussian() 该方法是产生一个double型的Goussian随机数。

案列:

package com.wbg;

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(" Integer:" + ran1.nextInt());
System.out.println(" Long:" + ran1.nextLong());
System.out.println(" Float:" + ran1.nextFloat());
System.out.println(" Double:" + ran1.nextDouble());
System.out.println(" Gaussian:" + ran1.nextGaussian()); //产生各种类型的随机数
for (int i = 0; i < 5; i++) {
System.out.println(ran2.nextInt() + " ");
if (i == 2)
System.out.println();//产生同种类型的不同的随机数。
}
}
}

也可以有nextFloat等等,各种基本类型都有 Math.random也可以

比如说你想要0-10之间的随机数

你可以这样写 (int)(Math.random()*10);

《JAVA产生指定范围的随机数》 产生机制: 产生Min-Max之间的数字 实现原理:

//不能设定为int,必须设定为long

Math.round(Math.random()*(Max-Min)+Min) long Temp;

//产生1000到9999的随机数

Temp=Math.round(Math.random()*8999+1000);

总结:

//第一个参数是结束数字 第二个参数是开始的数字
public static int reandom(int stop,int stat ){
return (int)Math.round(Math.random()*(stat-stop)+stop);
}

java随机数Reandom(简单介绍)的更多相关文章

  1. Java内存分析简单介绍

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11904422.html Java内存分析简单介绍: 1. # 设置内存溢出时自动生成堆内存快照 ...

  2. java框架复习 简单介绍 (转载)

    一.SpringMVC http://blog.csdn.net/evankaka/article/details/45501811 Spring Web MVC是一种基于Java的实现了Web MV ...

  3. Java提高篇—— 简单介绍Java 的内存泄漏

    java最明显的一个优势就是它的内存管理机制.你只需简单创建对象,java的垃圾回收机制负责分配和释放内存.然而情况并不像想像的那么简单,因为在Java应用中经常发生内存泄漏. 本教程演示了什么是内存 ...

  4. [Java 8 Lambda] java.util.stream 简单介绍

    包结构例如以下所看到的: 这个包的结构非常easy,类型也不多. BaseStream接口 全部Stream接口类型的父接口,它继承自AutoClosable接口,定义了一些全部Stream都具备的行 ...

  5. Java String的简单介绍

    一.String类的构造方法(先粗略介绍三种 分别是s1,s2,s3) 二.String的常用判断方法 三.String类的常用获取方法 三.Sting的常用转换方法 四.String其他功能   五 ...

  6. java注解的简单介绍

    什么是注解 1.注解就是Annontation,Annontation是Java5开始引入的新特征,中文名称叫做注解,它提供了一种安全的类似注释的机制,可以起到减少配置的成果,给程序起到辅助性的作用 ...

  7. java反射机制简单介绍

    1.字节码.所谓的字节码就是当java虚拟机载入某个类的对象时,首先须要将硬盘中该类的源码编译成class文件的二进制代码(字节码),然后将class文件的字节码载入到内存中,之后再创建该类的对象 2 ...

  8. java IO类简单介绍

    一.流的概念 流是字节序列的抽象概念.流和文件的差别:文件是数据的静态存储形式,而流是指数据传输时的形态.文件只是流的操作对象之一.流按其操作的对象不同可以分为文件流.网络流.内存流.磁带流等.Jav ...

  9. <java>枚举的简单介绍

    1.枚举,enum关键字,相当于public final static. 2.举例: 首先定义了一个名为spiciness的枚举类型. public enum Spiciness { NOT, MIL ...

随机推荐

  1. Spark Shell启动时遇到<console>:14: error: not found: value spark import spark.implicits._ <console>:14: error: not found: value spark import spark.sql错误的解决办法(图文详解)

    不多说,直接上干货! 最近,开始,进一步学习spark的最新版本.由原来经常使用的spark-1.6.1,现在来使用spark-2.2.0-bin-hadoop2.6.tgz. 前期博客 Spark ...

  2. 移动开发:Android官方提供的支持不同屏幕大小的全部方法

    转载请注明出处:http://blog.csdn.net/sinyu890807/article/details/8830286 原文地址为:http://developer.android.com/ ...

  3. Linux getopt()函数 getopt_long()函数---转

    http://hi.baidu.com/scoundrelgg/item/d4083f8412eea05d26ebd97f Linux getopt()函数 getopt_long()函数 get_o ...

  4. FZU 2213——Common Tangents——————【两个圆的切线个数】

    Problem 2213 Common Tangents Accept: 7    Submit: 8Time Limit: 1000 mSec    Memory Limit : 32768 KB ...

  5. 深入理解理解 JavaScript 的 async/await

    原文地址:https://segmentfault.com/a/1190000007535316,首先感谢原文作者对该知识的总结与分享.本文是在自己理解的基础上略作修改所写,主要为了加深对该知识点的理 ...

  6. 11、幻灯片:Slides

    /* ---ts----*/ import { Page,Slides } from 'ionic-angular'; import { ViewChild } from '@angular/core ...

  7. hibernate注解JPA

    1.JPA与hibernate 什么是JPA ? java persistence api :java持久化api,同一的ORM规范,是由sun公司指定的规范接口,hibernate实现了JPA规范. ...

  8. hibernate事务管理 (jdbc jta)

    hibernate的两种事务管理jdbc 和jta方式.下边说说两者的区别一.说明一下jdbc和jta方式事务管理的区别:JDBC事务由Connnection管理,也就是说,事务管理实际上是在JDBC ...

  9. CKEditor的使用

    需要配置的功能列表 //class: cke_button( 按钮 ) , ck_combo(下拉) /* 需要配置的功能列表 document:保存(save).新建(newpage).预览(pre ...

  10. ArcEngine开发鹰眼实现问题

    在网上百度一下有关AE鹰眼实现的代码,基本是一样的,可问题是好多代码自己运行起来鹰眼却总是加不进地图.住视图axMapControl1.OnMapReplaced(),axMapControl1.On ...