简单介绍

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. Fragment、Activity比较——Android碎片介绍

    Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似,下面介绍下Android Fragment的作用和用法.Fragmen ...

  2. flutter initializing gradle终极解决方案

    自己开发的公众号,可以领取淘宝内部优惠券 修改flutter.gradle文件 这种做法网上一大堆的教程,如果你还没改过建议先试下,比如这篇 Flutter 运行 一直Initializing gra ...

  3. C# 面向对象多态的抽象性&接口 object&is as类型转换运算符

    抽象类/抽象方法 abstract  抽象的数据类型 抽象类不能被实例化 抽象类中不一定存在抽象方法 抽象方法一定是在抽象类中 抽象类里可以放任意的方法 接口 interface 不是类,就是用来当爹 ...

  4. 【JavaWeb】JSP九大内置对象

    内置对象特点: 1.            由JSP规范提供,不用编写者实例化. 2.            通过Web容器实现和管理 3.            所有JSP页面均可使用 4.     ...

  5. C# 用tabcontrol实现窗体类似网页排版的显示

    这里做的比较简陋,可以美化下 把form设置为非顶级控件,直接放在tabcontrol里边,然后实现tabcontrol的拖拽移除tabpage显示form以及添加tabpage mousemove的 ...

  6. H5新特性-----type=file文件上传

    1.语法 单文件上传:<input type="file" id="file1"/> 多文件上传:<input type="file ...

  7. html5 填表 表单 form label input button legend fieldset

      <form>本身没有什么意义, 但是某些依赖form的标签元素一旦没有了form就不能生效. 所以form是提供一个定义环境给form的插件元素去生效的. 1.method 属性pos ...

  8. JavaScript中文拼音排序函数

    要对很多设备根据名称排序,找了找没有找到特别适合的,然后就自己写了一个根据中文拼音首字母排序的方法. github: https://github.com/haboll/sort.git

  9. 30 Excellent WordPress Video Tutorials

    http://sixrevisions.com/wordpress/30-excellent-wordpress-video-tutorials/ WordPress是一种使用PHP语言开发的博客平台 ...

  10. Stage5--Python GUI编程TKinter

    Python图形库简要介绍 python提供了多个图形开发界面的库,几个常用Python GUI库如下: Tkinter: Tkinter模块("Tk 接口")是Python的标准 ...