java本身自带的随机数功能非常简单,只能获取1到bound范围内的随机数
Random random = new Random();
int index = random.nextInt(bound);
那如果要负数怎么办呢?我先放出代码,通过这一个简短几行就可以实现
// 获取一定范围内的随机数(获得值包含min和max)
public int getRandom(int min, int max) {
int length = max - min + 1;
Random random = new Random();
int index = random.nextInt(length);
return min + index;
}
我们再来写个测试代码
// 测试随机数
public void testRandom() {
Logger logger = AppContext.getInstance().getLogger();
logger.info("取-3到5的随机数,采样20个");
{
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 20; i++) {
int num = MathUtil.getInstance().getRandom(-3, 5);
stringBuilder.append(num);
stringBuilder.append(" ");
}
logger.info(stringBuilder.toString());
}
logger.info("取-30到15的随机数,采样20个");
{
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 20; i++) {
int num = MathUtil.getInstance().getRandom(-30, 15);
stringBuilder.append(num);
stringBuilder.append(" ");
}
logger.info(stringBuilder.toString());
}
}
测试结这其实就是利用了区间位移的方法来间接实现。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。