黑马程序员技术交流社区

标题: 生成随机数 [打印本页]

作者: 黑色皮肤的马    时间: 2016-1-15 23:53
标题: 生成随机数
Math.random() 是生成 [0.0,1.0) 的随机数,那么我想生成一个指定范围的随机数,而不是 [0.0,1.0) 这个范围的随机数,怎么做呢?
作者: iori    时间: 2016-1-16 13:45
这个很简单啊!
Math.(random()*100+1)  这个就是生成1-100的随机数。
作者: ContainsM    时间: 2016-1-16 15:33
iori 发表于 2016-1-16 13:45
这个很简单啊!
Math.(random()*100+1)  这个就是生成1-100的随机数。

如果我要求 10-100 内的随机数,你的这个写法会超出100
正确的应该是
10-100(包含10,不包含100)
(int)(Math.random()*90)+10
作者: 放养的饼干    时间: 2016-1-16 16:53
如二三楼所说,想要什么结果可以添加运算自己算出来
作者: zhourui@^@    时间: 2016-1-16 18:52
ContainsM 发表于 2016-1-16 15:33
如果我要求 10-100 内的随机数,你的这个写法会超出100
正确的应该是
10-100(包含10,不包含100)

如果我要求在任意指定的两个数字之间呢?如:23到287之间随机产生一个数?
作者: iori    时间: 2016-1-16 19:42
ContainsM 发表于 2016-1-16 15:33
如果我要求 10-100 内的随机数,你的这个写法会超出100
正确的应该是
10-100(包含10,不包含100)

抬杠是吧!
作者: heima7788    时间: 2016-1-16 22:19
用Random类就行
作者: 胡思乱想的猫    时间: 2016-1-16 23:09
用  random.nextint();这个方法啊  写一个用集合来操作的 遍历出来
public class Random {
public static void main(String[] args) {
        Random random = new Random();
        HashSet<Integer> hs = new HashSet<Integer>();
        while(true){
                hs.add(random.nextInt(20) + 1);
                if (hs.size() == 10) {
                        break;
                }
        }
        for (Integer a : hs) {
                System.out.print(a + "  ");
        }
}
}
作者: furuigang    时间: 2016-1-17 00:34
学习了好的贴必须顶,大家一起分享啊
作者: 黑色皮肤的马    时间: 2016-1-17 11:47
胡思乱想的猫 发表于 2016-1-16 23:09
用  random.nextint();这个方法啊  写一个用集合来操作的 遍历出来
public class Random {
public static v ...

谢谢。。
作者: ContainsM    时间: 2016-1-17 13:16
zhourui@^@ 发表于 2016-1-16 18:52
如果我要求在任意指定的两个数字之间呢?如:23到287之间随机产生一个数?

10-100(包含10,不包含100)
(int)(Math.random()*90)+10
根据我上面的写法,把这个写成方法
// min 最小(包含)
// max 最大 (不包含)
public int A(int min,int max) {
    return (int)(Math.random()*(max-min))+min;
}
作者: Android666    时间: 2016-1-17 13:44
Math类中的random()方法(Math.random()生成0.00000至0.999999999之间的随机数
作者: Android666    时间: 2016-1-17 13:45
(Math.random()*100)+1生成1-100之间的随机数

作者: 542826323    时间: 2016-1-17 15:24
随机应变,根据需要的结果,来设计运算,以满足结果要求。
作者: 洋葱头头    时间: 2016-1-17 17:35
new Random().nextInt(10);
作者: sss1234hhh    时间: 2016-1-17 21:31
ContainsM 发表于 2016-1-16 15:33
如果我要求 10-100 内的随机数,你的这个写法会超出100
正确的应该是
10-100(包含10,不包含100)

好厉害啊
作者: 胡思乱想的猫    时间: 2016-1-17 22:25
黑色皮肤的马 发表于 2016-1-17 11:47
谢谢。。

不谢啦


作者: 付宇_GXie7    时间: 2016-1-18 23:00
乘以一个系数就行了
作者: mmxcf1    时间: 2016-1-19 07:08
主方法里面使用整数型
作者: zhourui@^@    时间: 2016-1-21 23:31
ContainsM 发表于 2016-1-17 13:16
10-100(包含10,不包含100)
(int)(Math.random()*90)+10
根据我上面的写法,把这个写成方法

6666666666
作者: anythingOK    时间: 2016-1-22 18:37
加 减 乘除,总能凑到你要的数
作者: yi651312197    时间: 2016-1-22 23:49
乘了之后在除就可以了
作者: 胡思乱想的猫    时间: 2016-2-16 23:12
Android666 发表于 2016-1-17 13:44
Math类中的random()方法(Math.random()生成0.00000至0.999999999之间的随机数

恩  谢谢 现在知道了呢!!明天学集合了

作者: 胡思乱想的猫    时间: 2016-2-16 23:14
洋葱头头 发表于 2016-1-17 17:35
new Random().nextInt(10);

看你头像.资料 好像好厉害的样子!!版主?
作者: 洋葱头头    时间: 2016-2-16 23:15
胡思乱想的猫 发表于 2016-2-16 23:14
看你头像.资料 好像好厉害的样子!!版主?

我头像确实比较吊
作者: renkuo023    时间: 2016-2-16 23:26
这是在水分吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2