java随机数Reandom(简单介绍)

简单介绍

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);
    }

原文地址:https://www.cnblogs.com/weibanggang/p/9467106.html

时间: 2024-08-01 16:34:01

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

java反射机制简单介绍

1.字节码.所谓的字节码就是当java虚拟机载入某个类的对象时,首先须要将硬盘中该类的源码编译成class文件的二进制代码(字节码),然后将class文件的字节码载入到内存中,之后再创建该类的对象 2.java反射的基础是Class类(注意不是小写的class),Class类实例代表着内存中的一份字节码.常见的获取Class类对象的方法例如以下(第一种为对象的方法,另外一种为类的方法): Dog dog = new Dog(); Class dogClass = dog.getClass();

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

包结构例如以下所看到的: 这个包的结构非常easy,类型也不多. BaseStream接口 全部Stream接口类型的父接口,它继承自AutoClosable接口,定义了一些全部Stream都具备的行为. 由于继承自AutoClosable接口,所以全部的Stream类型都能够用在Java 7中引入的try-with-resource机制中,以达到自己主动关闭资源的目的.实际上,仅仅有当Stream是通过Socket,Files IO等方式创建的时候,才须要关闭它.对于来自于Collection

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

阅读目录 什么是内存泄漏? 为什么会发生内存泄漏? 如何预防内存泄漏? java最明显的一个优势就是它的内存管理机制.你只需简单创建对象,java的垃圾回收机制负责分配和释放内存.然而情况并不像想像的那么简单,因为在Java应用中经常发生内存泄漏. 本教程演示了什么是内存泄漏,为什么会发生内存泄漏以及如何预防内存泄漏. 回到顶部 什么是内存泄漏? 定义:如果对象在应用中不再被使用,但由于它们在其他地方被引用,垃圾回收却不能移除它们(这样就造成了很多内存不能释放,从而导致内存溢出的现象.译注).

Java String的简单介绍

一.String类的构造方法(先粗略介绍三种 分别是s1,s2,s3) 二.String的常用判断方法 三.String类的常用获取方法 三.Sting的常用转换方法 四.String其他功能   原文地址:https://www.cnblogs.com/dddyyy/p/9487848.html

java集合-List简单介绍

List为一个接口,直接继承Collection接口,对比他们的接口变化:除了Collection接口中size(),isEmpty()等方法,其增加了基于下标index的一系列方法,摘抄部分接口方法: get(int) set(int, E) add(int, E) remove(int) indexOf(Object) lastIndexOf(Object) subList(int, int) 我们简单看一下ArrayList, 首先看一下成员变量 private static final

&lt;java&gt;枚举的简单介绍

1.枚举,enum关键字,相当于public final static. 2.举例: 首先定义了一个名为spiciness的枚举类型. public enum Spiciness { NOT, MILD, MEDIUM, HOT, FLAMING } 再来测试一下enum,这个测试方法表明它有tostring()方法,很方便的显示某个enum实例的名字. public class SimpleEnumUse { public static void main(String[] args) { S

java多线程(简单介绍)

简单介绍 线程是程序运行的基本执行单元.当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点.因此,在操作系统中运行的任何程序都至少有一个主线程. 线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段部所使用的数据,如线程执行函数中所定义的变量. 注意:任何一个线程在建立时都会执行一个函

java 的简单介绍

一.Java 特点     1.简单: 和C++相比较     2.面向对象     3.跨平台    由于它是先编译后解释 + JVM(屏蔽底层操作系统的差异) 二.程序的运行一般有两种:     1.编译  源文件 ------> 编译器  机器码文件       快  无法跨平台     2.解释  源文件 ------> 解释器  逐行翻译并运行   慢  可以跨平台 三.Java运行机制: 先编译,后解释     .java 源文件  -------> 编译器 .class 字

算法笔记_071:SPFA算法简单介绍(Java)

目录 1 问题描述 2 解决方案 2.1 具体编码   1 问题描述 何为spfa(Shortest Path Faster Algorithm)算法? spfa算法功能:给定一个加权连通图,选取一个顶点,称为起点,求取起点到其它所有顶点之间的最短距离,其显著特点是可以求含负权图的单源最短路径,且效率较高.(PS:引用自百度百科:spfa是求单源最短路径的一种算法,它还有一个重要的功能是判负环(在差分约束系统中会得以体现),在Bellman-ford算法的基础上加上一个队列优化,减少了冗余的松弛