Java中的随机数「建议收藏」

Java中的随机数「建议收藏」Java产生可以随机数的有两个类,一个是Random类,另一个是Math类中的random()方法。1.Random类在java.util包中有一个Random类,该对象的几个方法可以生成不同数据类型的随机数。如nextInt(),nextFloat(),nextLong(),nextBoolean()分别生成的是int整形,float浮点型,double浮点型,boolean布尔类型的随机数,也必须要用制定的数据类型的变量接收。例如:输出五个随机…

大家好,又见面了,我是你们的朋友全栈君。

        Java产生可以随机数的有两个类,一个是Random类,另一个是Math类中的random()方法。

一、Random类

        在java.util包中有一个Random类,该对象的几个方法可以生成不同数据类型的随机数。如nextInt(),nextFloat(),nextLong(),nextBoolean()分别生成的是int整形,float浮点型,double浮点型,boolean布尔类型的随机数,也必须要用制定的数据类型的变量接收。

        例如:输出五个随机的布尔类型

import java.util.Random;

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			boolean temp = rd.nextBoolean();
			System.out.println(temp);
		}
		
		
	}
}

        Java中的随机数「建议收藏」

        此外,可以生成int整形的nextInt()方法,有一个重载方法nextInt(int bound),多了一个传入的bound整形,该方法可以使其生成[0,bound)区间的整形随机数。bound不能<=0会报错。

        例如:随机输出5个0-99的随机数。


import java.util.Random;

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			int temp = rd.nextInt(100);
			System.out.println(temp);
		}
		
		
	}
}

        输出结果也是随机的0-99:

Java中的随机数「建议收藏」

        我们发现,nextLong()同样是生成整形的随机数,但是没有指定限制随机区间的重载函数,那么就可以使用人为的方式来限制随机区间。

        1. nextLong()%n使其随机数区间在(-n,n)

        例如 : 输出(-10,10)的5个随机数。


import java.util.Random;

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			Long temp = rd.nextLong()%10;
			System.out.println(temp);
		}
		
		
	}
}

        Java中的随机数「建议收藏」

        2.使用 Math.abs()  限制随机数为非负数。

        例如:输出5个 0-9的随机数

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			Long temp = Math.abs( rd.nextLong())%10;
			System.out.println(temp);
		}
		
		
	}
}

Java中的随机数「建议收藏」

         其中的nextFloat(),nextDouble()方法分别生成0-1的8位有限小数,16位有限小数的随机数。

        例如:输出5个16位有限小数的随机数。

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			double temp = Math.abs( rd.nextDouble())%10;
			System.out.println(temp);
		}
		
		
	}
}

        Java中的随机数「建议收藏」

二、Math.random()方法

        生成的随机数和Random类的nextDouble()类似,也是16位有限小数。

        例如:输出5个0-1区间的16位有限小数的随机数。

import java.util.Random;

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			double temp = Math.random();
			System.out.println(temp);
		}
		
		
	}
}

Java中的随机数「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156201.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • chrome加载慢_多线程有什么用

    chrome加载慢_多线程有什么用谷歌浏览器采用的是单线程下载,想要提高下载速度,就得采用多线程的下载方式,Chrome默认还是单线程下载,如果想要谷歌多线程下载,就要手动开启,下面听MacW小编娓娓道来,介绍如何开启Chrome多线程下载!先来看看开启前的下载速度,(同一个文件)看到了吧!默认情况下,只有左右,远没有到达带宽的上限,接下来跟着小编一起开启这个隐藏的功能,国产Chrome内核的浏览器通通适用,包括前段时间推送的新版Edge也可以。chrome://flags/#enable-parallel-downloading

    2022年10月8日
    3
  • WPF是什么_wpf documentviewer

    WPF是什么_wpf documentviewer项目中要用到一个数据分页栏,虽然自己没有实现过,但凭经验感觉它和ListBox/ListView有关。于是去网上搜了下WPF数据分页栏,果然很多实现都用到了ListView。于是拣了一种比较简单的实现学习,其中包含下面代码:ListView.View的标签内出现了GridView。在我印象中Grid是网格式的,而List是列表式的,所以我很好奇两者为什么可以混到一起。当然从类的关系上来看,应该是两者都继承了一个共同的父类。那么为了能使用起来更“自如”,对GridView有个系统的了解,还是有必要学习一

    2025年11月18日
    9
  • vector不是模板_vector的实现

    vector不是模板_vector的实现1.vector容器vetcor顾名思义就是一个向量的容器,该容器中的每个元素都属于同一个类型,有点类似于数组,vetor容器与数组的不同之处就在于,它具有“动态”的属性,举例来说,如果定义了一个vector容量为10,当你添加第十一个元素时,他会自己找一篇新的足够大领土(内存),然后搬家(把旧址复制过去)。而数组同志显然就是比较死板,在定义时有多大,实际也就有多大。vector容器的常规操作有…

    2022年8月18日
    8
  • linux中设置固定ip(亲测有效)[通俗易懂]

    linux中设置固定ip(亲测有效)[通俗易懂]首先打开虚拟机  打开xshell5连接虚拟机(比较方便,这里默认设置过Linux的ip,只是不固定)输入ifconfig,可以查看网管相关配置信息:然后输入  vi/etc/sysconfig/network-scripts/ifcfg-ens33命令。修改网卡配置文件按i键进行编辑。修改入下,原有的配置不要删,只要按下面修改就好。没有的配置项新增上去就…

    2022年5月5日
    47
  • Snap7 西门子S7系列PLC的通信库 简介[通俗易懂]

    Snap7 西门子S7系列PLC的通信库 简介[通俗易懂]目录简介参考Snap7简介Snap7用途适用系统支持语言西门子S7通信介绍Snap7组件Sanp7APISnap7PythonSnap7安装PLC设置连接PLC读取数据发送数据Sanp7C/C++node.js简介最近在开发一个项目,作为技术帝,已经完成工艺、机械设计的设计,项目过多,也是为了让自己更加????叉,就开始尝试做电气制图和PLC编程。结合物联网的发展,有一种想法,将数据传…

    2025年8月10日
    3
  • 递归实例详解

    递归实例详解

    2021年9月16日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号