java 产生指定范围的随机数
本文于2138天之前发表,文中内容可能已经过时。
问题
如何使用 java 产生 010,510 之间的随机数?
Math.random()
Math.random() 可以产生一个 大于等于 0 且 小于 1 的双精度伪随机数,假设需要产生 ”0《= 随机数 <=10” 的随机数,可以这样做:
1 | int num =(int)(Math.random() * 11); |
那如何产生 “5 <= 随机数 <= 10” 的随机数呢?
1 | int num = 5 + (int)(Math.random() * 6); |
生成 “min <= 随机数 <= max ” 的随机数
1 | int num = min + (int)(Math.random() * (max-min+1)); |
java.util.Random
Random 是 java 提供的一个伪随机数生成器。
生成 “ min <= 随机数 <= max ” 的随机数:
1 | import java.util.Random; |
标准库
在实际使用中,没有必要区重新写一次这些随机数的生成规则,可以借助一些标准库完成。如 commons-lang.
org.apache.commons.lang3.RandomUtils 提供了如下产生指定范围的随机数方法:
1 | // 产生 start <= 随机数 < end 的随机整数 |
org.apache.commons.lang3.RandomStringUtils 提供了生成随机字符串的方法,简单介绍一下:
1 | // 生成指定个数的随机数字串 |
stackoverflow原址:http://stackoverflow.com/questions/363681/generating-random-integers-in-a-range-with-java