获得随机数在Java中[复制]

问题描述 投票:378回答:2

可能重复: Java: generating random number in a range

我想在Java中获得1 50之间的一个随机值。

我可怎么办与Math.random();的帮助?

如何约束,且Math.random()返回值是多少?

java random
2个回答
680
投票

第一个方案是使用java.util.Random类:

import java.util.Random;

Random rand = new Random();

// Obtain a number between [0 - 49].
int n = rand.nextInt(50);

// Add 1 to the result to get a number from the required range
// (i.e., [1 - 50]).
n += 1;

另一种解决方案是使用Math.random()

double random = Math.random() * 49 + 1;

要么

int random = (int)(Math.random() * 50 + 1);

586
投票
int max = 50;
int min = 1;

1. Using Math.random()

double random = Math.random() * 49 + 1;
or
int random = (int )(Math.random() * 50 + 1);

这将使您从1 int或1.0(含)的情况下,在双案值到50至50.0(不包括)

为什么?

随机()方法返回在0.0和0.9之间的随机数...,可通过50相乘,所以上限变为0.0至49.999 ...时加1,就变成1.0〜50.999 ...,现在当你截断为INT,你会得到1到50(感谢评论@rup)。 leepoint's双方的方法真棒写了。

2. Using Random class in Java.

Random rand = new Random(); 
int value = rand.nextInt(50); 

这将给值从0到49。

为1至50:rand.nextInt((max - min) + 1) + min;

一些Java随机迷死Source

© www.soinside.com 2019 - 2024. All rights reserved.