Java程序设计入门教程--随机类Random

这篇具有很好参考价值的文章主要介绍了Java程序设计入门教程--随机类Random。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

随机数的类

        在程序设计中,经常都需要产生一些随机数,比如模拟随机抽奖、抽样等。

         Random类在java.util包中,是专门用于提供生成一个随机数的类,随机数的生成相关方法都在该内中。比如Random类的nextInt方法需要一int型值作为参数,并返回0到参数值但不包括参数值本身的一随机值。

模拟投掷骰子

         比如模拟扔有六个面的骰子:

face = 1 + randomNumbers.nextInt( 6 );

        参数6称为比例因子,代表着 nextInt方法将产生 (0–5)中的一个值,这就是所谓的缩放值范围,但六个面的骰子是数字1–6在每一面上 , 而不是 0–5,我们可以通过增加1来改变产生数的范围,这个1称为移动值,可以将产生的随机数移动到特定的范围。

         案例:模拟扔六个面的骰子20次的程序的范例程序。

 

package test;
import java.util.Random;

public class JavaDemo {
	public static void main(String[] args) {
		Random ran1 = new Random();
		int face;
		for(int i=0; i<20; i++)
		{
			face = 1 + ran1.nextInt(6);
			System.out.print(face+" ");
		}
	}
}

Java程序设计入门教程--随机类Random 

 

伪随机

        Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。

       相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。

Random()的两种构造方法

n Random() :创建一个新的随机数对象。
n Random(long seed) :使用单个 long 种子创建一个新的随机数对象。

        

多个随机数对象时的范例程序。  

Java程序设计入门教程--随机类Random

Java程序设计入门教程--随机类Random

范例程序结论

       以上程序中,对象random1random2均是通过指定种子数为100构造的,而这两个对象在相同次数类生成的随机数是完全一样的。

       所以为了避免出现这种情况,无论程序中需要多少个随机数,都只使用一个Random对象。


均匀分布的随机数

      Random类中的方法比较简单,每个方法的功能也很容易理解,Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率是均等的。

 例如:
public boolean nextBoolean()
该方法的作用是生成一个随机的boolean值,生成true和false的值几率相等,也就是都是50%的几率。
public double nextDouble()
该方法的作用是生成一个随机的double值,数值介于[0,1.0)之间。文章来源地址https://www.toymoban.com/news/detail-468346.html

到了这里,关于Java程序设计入门教程--随机类Random的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java程序设计入门教程--标识符和关键字

    目录 标识符 标识符的约定 1. 定义 用来 标识类名,变量名,方法名,类型名,数组名,文件名的有效序列称为标识符。简单地说,标识符就是一个名字 。 2. 标识符命名规则 (1)大小写有别,例如 a 和 A 是两个变量, Boy 和 boy 是不同的标识符。 (2)长度任意。 (3)可以

    2024年02月07日
    浏览(47)
  • 第1章_瑞萨MCU零基础入门系列教程之单片机程序的设计模式

    本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id=728461040949 配套资料获取:https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总 : https://blog.csdn.net/qq_35181236/article/details/132779862 本章目标 理解裸机程序设

    2024年02月09日
    浏览(52)
  • Java程序设计复习提纲(上:入门语法)

    上:本文 基本语法与编译运行 数据类型和 常用语法 数组与字符串 异常处理 中: Java程序设计复习提纲(中:面向对象) - 孤飞 - 博客园 (cnblogs.com) 面向对象和类 下: Java程序设计复习提纲(下:图形界面) - 孤飞 - 博客园 (cnblogs.com) 图形界面 java没有指针没有全局变

    2024年02月05日
    浏览(49)
  • [Java优选系列第2弹]SpringMVC入门教程:从零开始搭建一个Web应用程序

    想和你们分享我眼里的代码世界🗺️  优选系列持续更新中💫 一直在等你,你终于来啦💖                            绿色代表解释说明                 黄色代表重点                  红色代表精髓         SpringMVC是一个基于Java的Web框架,它使

    2024年02月12日
    浏览(55)
  • 【Java基础教程】(二十六)Java新特性篇 · 第六讲:注解——解码程序设计中的元数据利器,用小小的@符里做大大的开发~

    Java 注解(Annotation) 是Java语言中一种元数据形式,它提供了一种在代码中添加元数据的方式。注解为程序员提供了向代码中添加额外信息的能力,这些额外信息可以被编译器、工具或者运行时环境使用。 优点: 提供了一种 更加简洁和可读性强 的代码编写风格; 增强代码的

    2024年02月16日
    浏览(40)
  • 【Java基础教程】(二)入门介绍篇 · 下:从JDK下载安装到第一个“Hello World!”程序,解析PATH和CLASSPATH环境变量的妙用~

    JDK 安装与配置; 理解环境变量PATH和CLASSPATH的主要作用; 运行第一个Java程序。 要进行Java的程序开发,必须先有Java开发工具包( JavaDevelopmentKit,JDK )的支持。本节主要基于JDK1.8版本来介绍安装等知识,读者朋友可以直接登录 Oracle官网 去进行下载,也可以在下边链接(包含

    2024年02月13日
    浏览(62)
  • Python 程序设计入门(017)—— 选择结构程序设计

    程序中的选择结构也称为判断结构,按照条件选择执行不同的代码片段。Python 中的选择结构主要有三种形式:if 语句、if…else 语句和 if…elif…else 语句。 if 语句的语法格式如下: 说明: (1)表达式:可以是比较表达式或逻辑表达式。如果表达式的值为 True,则执行语句块

    2024年02月13日
    浏览(50)
  • Java入门教程||Java 封装||Java 接口

    在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装、隐藏起来的方法。  封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的代码和数据,必须通过严格的接口控制。 封

    2024年02月02日
    浏览(52)
  • Java并发教程_编程入门自学教程_菜鸟教程-免费教程分享

    Java并发教程 Java并发 - 概述 Java并发 - 环境设置 Java并发 - 主要操作 深入沟通 Java并发 - 同步 Java并发 - 死锁 Java并发 - ThreadLocal类 ThreadLocalRandom类 Java并发 - 锁接口 Java并发 - ReadWriteLock接口 Java并发 - 条件接口 Java并发 - AtomicInteger类 Java并发 - AtomicLong类 Java Concurrency - AtomicBoole

    2024年02月05日
    浏览(98)
  • 小程序入门——详细教程

                                                       🎬 艳艳耶✌️:个人主页                                                   🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》                                                    ⛺️ 生活的理想,

    2024年02月06日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包