Java生成随机数
2018-03-06 21:06
120 查看
这个是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的方式生成包含大量数字的测试用例。问题往往类似于:
如何随机生成 1~100 之间的随机数,取值包含边界值 1 和 100。
或者是:
如何随机生成随机的3位整数?
等等……
以 Java 语言为例,我们观察其 Random 对象的 nextInt(int) 方法,发现这个方法将生成 0 ~ 参数之间随机取值的整数。例如(假设先有 Random rand = new Random();,下同):
rand.nextInt(100);
这行代码将生成范围 0~100 之间的随机数,有趣的是,取值可能为 0 ,但不可能为 100。我们用中学数学课学习的区间表示法,表示为:[0, 100)。
那么如果要获得区间 [1~100] 的随机数,该怎么办呢?稍微动动脑筋就可以想到:区间 [0, 100) 内的整数,实际上就是区间 [0, 99]。因为最大边界为100,可惜不能等于100,因此最大可能产生的“整数”就是99。
既然 rand.nextInt(100) 获得的值是区间 [0, 99],那么在这个区间左右各加 1,就得到了区间 [1, 100]。因此,代码写成:
rand.nextInt(100) + 1;
即可。运行下面的代码,将获得 [1, 100] 的 10 个取值。
如何随机生成 1~100 之间的随机数,取值包含边界值 1 和 100。
或者是:
如何随机生成随机的3位整数?
等等……
以 Java 语言为例,我们观察其 Random 对象的 nextInt(int) 方法,发现这个方法将生成 0 ~ 参数之间随机取值的整数。例如(假设先有 Random rand = new Random();,下同):
rand.nextInt(100);
这行代码将生成范围 0~100 之间的随机数,有趣的是,取值可能为 0 ,但不可能为 100。我们用中学数学课学习的区间表示法,表示为:[0, 100)。
那么如果要获得区间 [1~100] 的随机数,该怎么办呢?稍微动动脑筋就可以想到:区间 [0, 100) 内的整数,实际上就是区间 [0, 99]。因为最大边界为100,可惜不能等于100,因此最大可能产生的“整数”就是99。
既然 rand.nextInt(100) 获得的值是区间 [0, 99],那么在这个区间左右各加 1,就得到了区间 [1, 100]。因此,代码写成:
rand.nextInt(100) + 1;
即可。运行下面的代码,将获得 [1, 100] 的 10 个取值。
相关文章推荐
- Java生成有概率随机数(可自定义随机数长度及概率)
- JAVA生成随机数
- java生成指定范围的随机数
- POJ 3318 Matrix Multiplication(JAVA生成随机数)
- java常用类解析十一:Random类(Math.random())生成指定范围的随机数或字符
- Java随机数生成原理--转稿
- java的随机数生成原理
- 史上最全的java随机数生成算法[转载]
- java生成唯一随机数
- (转)java生成随机数
- Java生成随机数
- 如何用java生成指定范围的随机数
- Java生成指定位数不重复随机数
- java的随机数生成原理
- Java生成一个随机数
- java生成六位随机数,并且唯一。
- (一)JAVA生成随机数工具类RandomStringUtils详解
- java中生成随机数
- (二)java生成随机数工具类RandomUtils详解
- Java生成随机数