`
fxly0401
  • 浏览: 144313 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java中的随机类Random

阅读更多
    需求是在整数1-9中间随机选择一个数字。

    使用Math.random()。结果写成如下:int p = (int) (Math.random() * 9); 结果就是1和9永远随机不到。

    查证Javase docs. 对于这个函数,是这样讲的:

    Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0.
    因为less than 1.0, 所以强制转化到integer,  上面的p是永远不会为9的。0倒是可以随机到的,因为强制转化时会取下整。

    使用函数Random.nextInt(int n) 这个函数:

    Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive)
    比如上诉的需求可写为: Random ran = new Random(); int p =ran.nextInt(9)+1;  这样能够得到想要的结果。

如果要对任意输入的正整数范围取随机,则如下:

int createRandom(int min, int max) {
		Random random = new Random();
		return random.nextInt(max-min+1)+ min;
	}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics