首页 > 编程语言 >善用java中的随机数

善用java中的随机数

时间:2023-09-07 11:33:58浏览次数:37  
标签:java 善用 double Random temp1 base 随机 随机数


Math.random() 方法:产生0~1间的一个double随机值。(可直接用) 还可以让random作为时间种子: 在java.util.Random类下,有:

Random r=new Random();
r.nextInt(100);   //生成0~99之间的随机整数

还有,System类里有一个currentTimeMills()方法,返回一个从1970年1月1日0点0分0秒到目前的一个随机毫秒数。

[0,1]之间均匀分布的随机整数算法 设定一个基数base=256.0(一般取的2的整数倍),以及两常数a=17.0和b=139.0(这两个数按经验任取)。 r(i)=mod(a*r(i-1)+b,base) pi=r(i)/ base 其中,i=1,2,...... 而pi便是递推得到的第i个随机数(r(i)用数组代,为随机种子)

static double rand01(double[] r){
	double base,a,b,p,temp1,temp2,temp3;
	base=256.0;   //基数
	a=17.0;
	b=139.0;
	temp1=a*(r[0])+b;   //算总值
	temp2=(int)(temp1/base);   //算商
	temp3=temp1-temp2*base;   //算余数
	r[0]=temp3;   //更新随机种子,被下一次使用
	p=r[0]/base;  //随机数
	return p;
}
public static void main(String[] args){
	int i;
	double[] r={5.0};
	for(i=0;i<10;i++){
		System.out.printf("%10.5f\n",rand01(r));
	}
	System.out.printf("\n");
}

以上方法也可用来求[m,n]之间的随机浮点数:

m+(n-m)*rand01(r)

同样,也可求[m,n]之间均匀分布的随机整数:

m+(int)((n-m)*rand01(r))

当然,java中还有java.util.Random类

import java.util.Random;
public class Text{
public static void main(String[] args){
 Random rand=new Random();   //创建random对象
 int result=rand.nextInt(10);   //返回[0,10)不包括10
        }
}

标签:java,善用,double,Random,temp1,base,随机,随机数
From: https://blog.51cto.com/u_15296224/7395484

相关文章

  • 深入研究java.lang.Runtime类
    在线API:http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Runtime.html转自:http://lavasoft.blog.51cto.com/62575/15565一、概述     Runtime类封装了运行时的环境。每个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。     ......
  • Java低代码开发:jvs-list(列表引擎)功能(二)字段及样式配置
    字段的增减进入列表页设计器-页表设计界面,点击新增一行、或者删除按钮,可以对字段进行增减操作,如果对于权限的列表页,可以使用批量创建字段的按钮:字段的批量设置,点击批量添加如下图所示字段为中文名称,每一行为一个字段,默认去除空格默认字段系统提供创建人、创建时间、修改人、修改时......
  • Java开发过程小问题
    报错信息:org.yaml.snakeyaml.error.YAMLException:java.nio.charset.MalformedInputException:Inputlength=2解决办法:1.修改编码方式2.重启idea......
  • 无涯教程-JavaScript - BESSELI函数
    描述BESSELI函数返回修改后的Bessel函数In(x),该函数等效于针对纯虚参判断的Bessel函数。语法BESSELI(X,N)争论Argument描述Required/OptionalXThevalueatwhichtoevaluatethefunction.RequiredNTheorderoftheBesselfunction.Ifnisnotaninteger,......
  • Sermant类隔离架构解析——解决JavaAgent场景类冲突的实践
    一、JavaAgent场景为什么要注意类冲突问题?类冲突问题并非仅存在于JavaAgent场景中,在Java场景中一直都存在,该问题通常会导致运行时触发NoClassDefFoundError、ClassNotFoundException、NoSuchMethodError等异常。从使用场景来看,基于JavaAgent技术所实现的工具,往往用于监控、治理等场......
  • 掌握Java常用机制,让你的代码更优雅
    Java是一种面向对象的编程语言,它提供了许多常用的机制来简化编程过程。以下是Java中一些常用的机制:异常处理机制:Java中的异常处理机制可以帮助程序员捕获和处理程序运行时的错误。通过使用try-catch语句块,程序员可以捕获特定类型的异常,并在发生异常时执行相应的代码。例如:try{......
  • 【JAVA】java.lang.IllegalStateException: Failed to get nested archive for entry
    无脑看:解压后,替换lib里的jar,在本窗口用命令:jar-xvf ***.jar进行打包就行了。 一、背景:替换jar包中lib里的jar包1、在经过360压缩软件打开后进行了替换,运行报错 (PS.有时候不显示日志的时候可以在bat最后加一个pause)2、在经过WINRAR压缩软件进行存储(stor......
  • Hutool,一个超好用的 Java 工具类库
    一、简介Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool的目标是使用一个工具方法代替一段复杂代码,从而最大限度的避免“复制粘贴”代码的问题,彻底改变我们写代码的方式......
  • java基础-idea的使用-day07
    目录1.idea的获取2.已经安装的idea如何卸载3.idea的安装与破解3.设置4.写代码常用快捷建的使用1.idea的获取链接:https://pan.baidu.com/s/1x-WT04lbJ_1FXCP3kWcihg?pwd=ufjh提取码:ufjh2.已经安装的idea如何卸载对于免安装的idea:(1)删除安装文件(2)到用户下将idea的缓......
  • java中CAS是什么?原理是什么?CAS有什么缺点
    什么是CAS?CAS叫做CompareAndSwap,比较并交换,主要是通过处理器的指令来保证操作的原子性。CAS的原理是什么?CAS包含三个操作数:1.  变量内存地址,V表示2.  旧的预期值,A表示3.  准备设置的新值,B表示当执行CAS指令时,只有当V等于A时,才会用B去更新V的值,否则就不会执行更新操作。CAS......