SimpleRandom.java

本文介绍了一个简单实用的随机数生成工具类SimpleRandom,该工具类提供了多种类型的随机数生成方法,包括byte、short、int、long、float、double等,并且支持在指定范围内生成随机数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


/*
* 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;
}

}

资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值