简单介绍

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. TOJ 1717 WOJ

    描述 Alex likes solving problems on WOJ (http://acm.whu.edu.cn/oak). As we all know, a beautiful ballo ...

  2. topN问题

    topN问题:给出一个数组,找出前N个最大的元素. topN问题可以用分治法解决,这个问题与快速排序类似,快速排序是用一个数对数组进行划分,topN问题则不需完成排序,只需划分出前n个最大的数字即可. ...

  3. 吴恩达《Machine Learning Yearning》总结(31-40章)

    31.解读学习曲线:其他情况 下图反映了高方差,通过增加数据集可以改善. 下图反映了高偏差和高方差,需要找到一种方法来同时减少方差和偏差. 32.绘制学习曲线 情况:当数据集非常小时,比如只有100个 ...

  4. Java Socket通信示例

    Socket分为ServerSocket和Socket两大类: 其中ServerSocket用于服务器端,可以通过accept方法监听请求,监听到请求后返回Socket: Socket用户具体完成数据 ...

  5. 键盘按键keyCode大全,js页面快捷键

    字母和数字键的键码值(keyCode) 按键 键码 按键 键码 按键 键码 按键 键码 A 65 J 74 S 83 1 49 B 66 K 75 T 84 2 50 C 67 L 76 U 85 3 ...

  6. 【Java集合】LinkedList详解中篇

    这是关于LinkedList的第二篇文章,我将会源码分析LinkedList的部分重要代码,关键地方我都有注释说明,希望大家能比较明白的看懂! 分析源码按照顺序分析: 变量 构造方法 方法 一.变量 ...

  7. 新手的grid布局

    html部分 <!DOCTYPE html><html><head><meta charset="utf-8"><link r ...

  8. cf567E. President and Roads(最短路计数)

    题意 题目链接 给出一张有向图,以及起点终点,判断每条边的状态: 是否一定在最短路上,是的话输出'YES' 如果不在最短路上,最少减去多少权值会使其在最短路上,如果减去后的权值\(< 1\),输 ...

  9. webstorm上传vue代码至git

    Git在push时候,提示:push to origin/master was rejected 解决方案如下: 提交代码顺序 webstorm右键项目名称==>Git==>Commit ...

  10. python 后台运行命令

    nohup python a.py  > a.log 2>&1 & 在窗口中单开虚拟session: tmux new -s "name" 推出虚拟窗口 ...