java 在两个范围内取一个随机数

比如在 {1, 50} {100, 150} 这两个区间内随机取一个数,应该怎么写?

java在两个数范围内取一个随机数方式:

    可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,把它乘以一定的数,比如说乘以100,就是0-100以内的随机数

    用java.util包里面提供的Random类,新建一个Random的对象来产生随机数,可以产生随机整数、随机float、随机double,随机long。

举例:

public class RandomDemo {
    public static void main(String[] args) {
        int max=20;
        int min=10;
        Random random = new Random();
        /*random.nextInt(max)表示生成[0,max]之间的随机数,然后对(m        ax-min+1)取模。
        以生成[10,20]随机数为例,首先生成0-20的随机数,然后对(20-1        0+1)取模得到[0-10]之间的随机数,然后加上min=10,最后生成的        是10-20的随机数 */
        int s = random.nextInt(max)%(max-min+1) + min;
        System.out.println(s);
    }
}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-01-28
Math.random() 方法能返回大于等于 0.0 且小于 1.0 double 型数值。
即它的取值区间为[0,1),包括 0 不包括 1。
你需要做的是把范围放大,怎么放大一个数?当然是用乘法啦。
放大多少,就看你取值区间的范围多大,以第一个区间为例是[1,50],那么变化范围是 50-1=49
那么就是 Math.random()*49,这样就能得到 [0,49] 范围里的数了。但是你要的是 [1,50] 怎么办?
很简单嘛,每个得出来的数都加上取值区间的第一个数,在这里是加 1 ,就OK了。
所以最后你要的表达式就是:Math.random()*49+1 ,就能得到 [1,50) 的取值了。
有两点要注意的:
第一,这里 50 这边是小括号,也就是不包含在内的。需要它的话,你要是用取整或者增大变化范围,比如到 51 的办法。
第二,这里得到的数值类型是 double 型的,如果你需要其它类型,也要进一步处理。本回答被网友采纳
第2个回答  2017-12-31
Math.random() 方法能返回大于等于 0.0 且小于 1.0 double 型数值。
即它的取值区间为[0,1),包括 0 不包括 1。
你需要做的是把范围放大,怎么放大一个数?当然是用乘法啦。
放大多少,就看你取值区间的范围多大,以第一个区间为例是[1,50],那么变化范围是 50-1=49
那么就是 Math.random()*49,这样就能得到 [0,49] 范围里的数了。但是你要的是 [1,50] 怎么办?
很简单嘛,每个得出来的数都加上取值区间的第一个数,在这里是加 1 ,就OK了。
所以最后你要的表达式就是:Math.random()*49+1 ,就能得到 [1,50) 的取值了。
有两点要注意的:
第一,这里 50 这边是小括号,也就是不包含在内的。需要它的话,你要是用取整或者增大变化范围,比如到 51 的办法。
第二,这里得到的数值类型是 double 型的,如果你需要其它类型,也要进一步处理。
第3个回答  2013-01-08
int random=(int)(Math.random()*50)+1;//产生1-50任意随机整数
int random=(int)(Math.random()*(max+1-min)+min//产生min-max任意随机整数
第4个回答  2013-01-08
java.util.Random rnd=.............

其实是和 一个区间相似

int a=1+rnd.nextInt(49);
int b=100+rnd.nextInt(50);

//取舍一下吧,再用
return rnd.nexeBoolean()? a:b;本回答被网友采纳

”java” 在两个范围内取一个随机数怎么做?
当然是用乘法啦。\\x0d\\x0a放大多少,就看你取值区间的范围多大,以第一个区间为例是[1,50],那么变化范围是 50-1=49\\x0d\\x0a那么就是 Math.random()*49,这样就能得到 [0,49] 范围里的数了。但是你要的是 [1,50] 怎么办?\\x0d\\x0a很简单嘛,每个得出来的数都加上取值区间的第...

在java中获取随机数的方法?
下面是一个生成10个在5(含)和10(含)之间的随机整数的完整示例:代码片段 输出 2. Math.random()此方法返回一个从0.0(含)到1.0(不含)之间的随机双精度值。对于生成16(含)到20(含)范围内的10个随机整数,可以采用类似公式生成。下面是一个完整示例:代码片段 输出 3. Java 8 Random.ints J...

java中怎么实现两者之间随机得到一个
1、首先构建一个概率列表,[0, 0.1, 0.3, 1.0]。看出规律来了么,除了第一个元素是0,之后的元素是前几个元素的和。构成了一个概率列表。2、使用随机数产生[0,1]之间的随机数,假设是0.5,那么落入了[0.3, 1.0]这个区间,那么我们认为C事件发生了。不知道你明白了么,这样对于n个事...

求解答 java中, A跟B , 2个东西 要随机选出1个, 这个code怎么写
int n=(int)(Math.random()+0.5);如果随机数是在[0,0.5)中,则n=0 如果随机数是在[0.5,1)中,则n=1 然后可以根据n==0判断选择A还是选择B

在java中,如果要随机产生数给某个变量赋值,但产生数的范围有两个,该...
Math.random()函数是取一个大于等于0,小于等于1的随机数,返回的一个值是个double型。根据你的需要,你可以对这个值进行范围控制:比如(int)(Math.random()*100),即为取一个范围在0-100的整数;(int)(Math.random()*100)+10,即为取一个范围在10-110的整数。

java培训:java中如何产生一个随机数
在Java中,利用Random类生成随机数是常见操作。主要有两种方法。第一种方法,通过Math.random()产生随机数。Math类的random()方法返回的是一个[0, 1)区间内的double类型的随机数。例如这段代码:生成了范围在[0, 1)之间的double类型的随机数random。如果需要生成指定范围的随机数,可以稍作修改:这段...

java如何获取10到20随机数?
Java中有两种方法可以得到随机数,一个是random类,但是这个类需要先声明对象,而且得到的随机数只有上限,没有下限,用这种方法得到你要的结果是这样的random rs=new random();int i=rs.nextInt(10)+10;第二种方法,就是java.util.Math的random()方法,这是个静态方法,直接调用返回的是0到1之间...

怎样用Java生成随机数?
通过随机数生成器,每次运行程序时都能得到不同的结果,实现随机数据的产生功能。以下是一个使用Random类生成随机数的Java程序示例,每次运行程序均会产生不同的随机数。另外,Math类的random()方法同样能生成0到1之间的double类型随机数,但需要进一步处理以实现特定范围内的随机数生成。例如,要生成2到100...

java随机数
} 解释:Java中的Random类提供了生成随机数的方法。使用该类,我们可以生成各种类型的随机数,如整数、浮点数等。在上述代码中,我们首先引入了java.util包中的Random类。然后创建一个Random类的实例rand。接下来使用rand对象的nextInt方法来生成一个随机整数,用nextDouble方法来生成一个随机浮点数。最后...

JAVA中如何产生一个特定范围的随机数?
Random rand = new Random();int randNum = rand.nextInt(3);生成5-26之间的随机数,包括26 int randNum = rand.nextInt(22)+5;java中让随机数产生在一个区间段:假设你要产生5到10之间的随机数,可以用下面方法:int Min = 5;int Max = 10;int result = Min + (int)(Math.random()...

相似回答