/*
* SimpleRandom.java xiaocao000 2009-7-30
*/
package com.xiaocao000.lang;
import java.util.Calendar;
import java.util.Date;
/**
* 简单随机数生成工具。
*
* @author xiaocao000
*/
public class SimpleRandom
{
private static final int BUFSIZE = 100;
private static double[] buf = new double[BUFSIZE];
static
{
for (int i = 0; i < buf.length; i++)
{
buf[i] = Math.random();
}
}
/**
* 获取一个随机byte值。
*
* @return 随机byte值。
*/
public static byte getByte()
{
return (byte) (nextRandom() * Byte.MAX_VALUE);
}
/**
* 获取一个介于[min, max)之间的随机byte值。
*
* @param min
* 随机byte值的下限(包含)
* @param max
* 随机byte值的上限(不包含)
* @return 介于[min, max)之间的随机byte值。
*/
public static byte getByte(byte min, byte max)
{
return (byte) (nextRandom() * (max - min) + min);
}
/**
* 获取一个随机short值。
*
* @return 随机short值。
*/
public static short getShort()
{
return (short) (nextRandom() * Short.MAX_VALUE);
}
/**
* 获取一个介于[min, max)之间的随机short值。
*
* @param min
* 随机short值的下限(包含)
* @param max
* 随机short值的上限(不包含)
* @return 介于[min, max)之间的随机short值。
*/
public static short getShort(short min, short max)
{
return (short) (nextRandom() * (max - min) + min);
}
/**
* 获取一个随机int值。
*
* @return 随机int值。
*/
public static int getInt()
{
return (int) (nextRandom() * Integer.MAX_VALUE);
}
/**
* 获取一个介于[min, max)之间的随机int值。
*
* @param min
* 随机int值的下限(包含)
* @param max
* 随机int值的上限(不包含)
* @return 介于[min, max)之间的随机int值。
*/
public static int getInt(int min, int max)
{
return (int) (nextRandom() * (max - min) + min);
}
/**
* 获取一个随机float值。
*
* @return 随机float值。
*/
public static float getFloat()
{
return (float) (nextRandom() * Float.MAX_VALUE);
}
/**
* 获取一个介于[min, max)之间的随机float值。
*
* @param min
* 随机float值的下限(包含)
* @param max
* 随机float值的上限(不包含)
* @return 介于[min, max)之间的随机float值。
*/
public static float getFloat(float min, float max)
{
return (float) (nextRandom() * (max - min) + min);
}
/**
* 获取一个随机long值。
*
* @return 随机long值。
*/
public static long getLong()
{
return (long) (nextRandom() * Long.MAX_VALUE);
}
/**
* 获取一个介于[min, max)之间的随机long值。
*
* @param min
* 随机long值的下限(包含)
* @param max
* 随机long值的上限(不包含)
* @return 介于[min, max)之间的随机long值。
*/
public static long getLong(long min, long max)
{
return (long) (nextRandom() * (max - min) + min);
}
/**
* 获取一个随机double值。
*
* @return 随机double值。
*/
public static double getDouble()
{
return (double) (nextRandom() * Double.MAX_VALUE);
}
/**
* 获取一个介于[min, max)之间的随机double值。
*
* @param min
* 随机double值的下限(包含)
* @param max
* 随机double值的上限(不包含)
* @return 介于[min, max)之间的随机double值。
*/
public static double getDouble(double min, double max)
{
return (double) (nextRandom() * (max - min) + min);
}
/**
* 获取一个随机boolean值。
*
* @return 随机boolean值
*/
public static boolean getBoolean()
{
return nextRandom() > 0.5;
}
/**
* 获取一个随机小写字母Character[a-z]值。
*
* @return 随机Character值
*/
public static char getLowerCharacter()
{
return (char) (getInt(0, 26) + 'a');
}
/**
* 获取一个随机大写字母Character[A-Z]值。
*
* @return 随机Character值
*/
public static char getUpperCharacter()
{
return (char) (getInt(0, 26) + 'A');
}
/**
* 获取一个随机字母Character[A-Z|a-z]值。
*
* @return 随机Character值
*/
public static char getCharacter()
{
// return getBoolean() ? getLowerCharacter() : getUpperCharacter();
return (char) (getInt(0, 26) + (getBoolean() ? 'A' : 'a'));
}
/**
* 返回一个长度为8的包含大小写字母的随机字符串。
*
* @return String
*/
public static String getString()
{
return getString(8);
}
/**
* 返回指定长度的包含大小写字母的随机字符串。
*
* @return String
*/
public static String getString(int len)
{
StringBuffer sb = new StringBuffer();
for (int i = 0; i < len; i++)
{
sb.append(getCharacter());
}
return sb.toString();
}
/**
* 获取随机的Calendar对像,年份介于[1970,2050]。
* @return 随机的Calendar对像
*/
public static Calendar getCalendar()
{
Calendar calendar = Calendar.getInstance();
calendar.set(getInt(1970, 2051), getInt(0, 12), getInt(1, 32),
getInt(0, 24), getInt(0, 60), getInt(0, 60));
return calendar;
}
/**
* 获取随机java.util.Date对象,年份介于[1970,2050]。
* @return 随机java.util.Date对象
*/
public static Date getDate()
{
return getCalendar().getTime();
}
/**
* 从随机数缓冲区获取一个double随机数。
*
* @return double随机数。
*/
private static double nextRandom()
{
int index = (int) (Math.random() * BUFSIZE);
// if (index == BUFSIZE)
// {
// index = BUFSIZE - 1;
// }
double result = buf[index];
buf[index] = Math.random();
return result;
}
}
分享到:
相关推荐
标题 "SimpleRandom:심심해서로종류별" 暗示了这是一个关于 C# 编程中的随机数生成器的讨论,特别是 "SimpleRandom" 这个自定义类或者方法,可能是为了实现不同类型的随机数生成。描述部分虽然较为空泛,但我们可以...
- **MainActivity.java**: 应用的主活动,通常负责处理UI和业务逻辑。 - 可能有一个 `ColorGenerator` 类,用于生成随机颜色。 4. **build.gradle**: 构建脚本,定义依赖库和构建设置。 5. **gradle.properties** ...
maxwell simplorer simulink 永磁同步电机矢量控制联合仿真,电机为分数槽绕组,使用pi控制SVPWM调制,修改文件路径后可使用,软件版本matlab 2017b, Maxwell electronics 2021b 共包含两个文件, Maxwell和Simplorer联合仿真文件,以及Maxwell Simplorer simulink 三者联合仿真文件。
基于springboot的网上图书商城--论文.zip
门板边挡板分离喂料机sw19全套技术资料100%好用.zip
信号与系统matlab仿真实验报告2024(学生提交).docx
洗砂机stp全套技术资料100%好用.zip
用句子记忆单词带背版本,适合时间比较充足想打好基础的同学
电子PCB板龙门铣自动化生产线sw17可编辑全套技术资料100%好用.zip
最新紧固件标准型号对照表.docx
【创新无忧】基于matlab遗传算法GA优化极限学习机KELM故障诊断【含Matlab源码 10735期】.zip
【创新无忧】基于matlab极光算法PLO优化极限学习机KELM故障诊断【含Matlab源码 10707期】.zip
java面向对象程序设计实验报告
展示PRD文档的关键要素编写具体示例。同时提供了一份模板,方便撰写PRD文档。
内容概要:本文详细介绍了一个基于广义变分同步优化(GVSAO)的时间序列预测模型项目。该项目涵盖了从项目背景到最终部署的整个流程,包括数据预处理、模型构建、训练、优化、GUI界面设计、实时预测及系统部署等方面。GVSAO作为一种新型优化方法,能更好地处理非线性关系和高维数据的特点,在预测股票价格、电力负荷、天气变化等方面显示出优越性能。文中提供的MATLAB代码和可视化工具使模型实现和评估更为便捷。 适合人群:对时间序列预测感兴趣的科研工作者、学生和工程师,特别是那些想要深入了解同步优化技术及其应用场景的人。 使用场景及目标:①适用于金融、能源、气象和制造业等多个领域的时间序列预测;②提升模型预测精度;③提供一个完整的项目实施模板供学习模仿。使用该模型可以更有效地挖掘时间序列数据背后隐含的趋势和规律,辅助商业决策和社会管理。 其他说明:本文档不仅包含理论概念和技术细节,还有丰富的实例演示,可以帮助读者全面掌握基于GVSAO的时间序列预测技巧。同时,附带完整的程序代码使得研究成果可以直接应用于实际工作中。
DSP芯片程序读取 DSP28德州仪器28系列DSP反汇编,定点器件和浮点器件均支持,能够根据out、hex或bin文件建立可以编译的CCS汇编语言工程,并且编译后可生成二进制完全相同的bin文件,方便进行研究软件设计思路,二次开发,器件迁移,混淆再链接,研究通信协议,解除ID限制,提取算法等,小批量的代码转C。
内容概要:本文介绍了一种基于对比学习的图异常检测算法,涵盖数据预处理、对比样本构建、模型设计(含选择适当的GNN架构及设计对比学习模块)、异常检测流程、结果评估方法和代码实例六个主要环节。文章特别强调在常规数据集(如Cora、PubMed)的应用上力求获得较高的AUC分数,超过80%,并且提供了详细的操作指导和Python源代码示例供开发者学习。 适用人群:主要面向有一定机器学习、深度学习理论基础,尤其关注图结构数据处理的研究人员、数据科学家和技术专家。对于有志于从事网络安全监控、金融风控等领域工作的专业人士尤为有用。 使用场景及目标:①针对具有大量节点关系的数据结构进行高效的异常识别;②利用先进的AI技术和工具箱快速搭建并迭代优化系统性能,达成高效准确的预测;③为后续研究提供参考和启示。 其他说明:文中不仅深入解析了每一阶段的技术细节,而且通过具体的Python实现片段帮助读者更好地理解和实践这一复杂的过程。对于期望深入挖掘对比学习在非传统数据格式下应用可能性的人而言是个宝贵的参考资料。
MIPI-DPU platform TCL
【JavaScrip】一个傻妞机器人插件库_pgj
comsol锂离子电池组充放电循环强制液冷散热仿真。 模型为SolidWorks导入,可以提供原模型。 电池模型:一维电化学(p2d)模型耦合三维热模型