A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑色皮肤的马 中级黑马   /  2016-1-15 23:53  /  2019 人查看  /  25 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Math.random() 是生成 [0.0,1.0) 的随机数,那么我想生成一个指定范围的随机数,而不是 [0.0,1.0) 这个范围的随机数,怎么做呢?

25 个回复

倒序浏览
这个很简单啊!
Math.(random()*100+1)  这个就是生成1-100的随机数。
回复 使用道具 举报
iori 发表于 2016-1-16 13:45
这个很简单啊!
Math.(random()*100+1)  这个就是生成1-100的随机数。

如果我要求 10-100 内的随机数,你的这个写法会超出100
正确的应该是
10-100(包含10,不包含100)
(int)(Math.random()*90)+10
回复 使用道具 举报
如二三楼所说,想要什么结果可以添加运算自己算出来
回复 使用道具 举报
ContainsM 发表于 2016-1-16 15:33
如果我要求 10-100 内的随机数,你的这个写法会超出100
正确的应该是
10-100(包含10,不包含100)

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

抬杠是吧!
回复 使用道具 举报
用Random类就行
回复 使用道具 举报
用  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 + "  ");
        }
}
}
回复 使用道具 举报 1 0
学习了好的贴必须顶,大家一起分享啊
回复 使用道具 举报
胡思乱想的猫 发表于 2016-1-16 23:09
用  random.nextint();这个方法啊  写一个用集合来操作的 遍历出来
public class Random {
public static v ...

谢谢。。
回复 使用道具 举报
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;
}
回复 使用道具 举报 1 0
Math类中的random()方法(Math.random()生成0.00000至0.999999999之间的随机数
回复 使用道具 举报
(Math.random()*100)+1生成1-100之间的随机数
回复 使用道具 举报
随机应变,根据需要的结果,来设计运算,以满足结果要求。
回复 使用道具 举报
new Random().nextInt(10);
回复 使用道具 举报
ContainsM 发表于 2016-1-16 15:33
如果我要求 10-100 内的随机数,你的这个写法会超出100
正确的应该是
10-100(包含10,不包含100)

好厉害啊
回复 使用道具 举报
回复 使用道具 举报
乘以一个系数就行了
回复 使用道具 举报
主方法里面使用整数型
回复 使用道具 举报
ContainsM 发表于 2016-1-17 13:16
10-100(包含10,不包含100)
(int)(Math.random()*90)+10
根据我上面的写法,把这个写成方法

6666666666
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马