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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 惜缘1989 中级黑马   /  2016-2-29 23:08  /  2355 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1,用Random:  Random random =new Random();
                          int a = m+(int)random.nextDouble( )*(n-m);
2,用Math: int a = m+(int)Math.random( )*(n-m);


初学,不知道对不对,求大神解释

11 个回复

倒序浏览
强转后边的需要加(),强转的优先级高于运算符。int a = m+(int)(random.nextDouble( )*(n-m));
回复 使用道具 举报
2,用Math: int a = m+(int)(Math.random( )*(n-m));    可以实现的  实验了
回复 使用道具 举报
思想是对的
回复 使用道具 举报
Random random =new Random();
int a =random.nextInt(n-m)+m;
回复 使用道具 举报
fagug 发表于 2016-3-2 00:41
Random random =new Random();
int a =random.nextInt(n-m)+m;

彬彬错了哦  

int a =random.nextInt(n-m+1)+m;
回复 使用道具 举报
huang_bing_hua 来自手机 中级黑马 2016-3-2 09:06:47
7#
int a = m+(int)(random.nextDouble( )*(n-m+1));
int a = m+(int)(Math.random( )*(n-m+1));
回复 使用道具 举报
这是我写的程序 你可以参照一下
import java.util.Random;
//指定范围的随机数取得
public class RandomDemo{


    public static void main(String[] arsg){
       
           int begin =10;
           int end  = 30;
       
            Random r = new Random();
                //(m-n) +n +1
                int res = r.nextInt(end-begin)+begin+1;
               
                System.out.println(res);
       
        }


}
回复 使用道具 举报

写了程序 可以实现 呵呵
回复 使用道具 举报
xiaotvsit 发表于 2016-3-2 09:57
这是我写的程序 你可以参照一下
import java.util.Random;
//指定范围的随机数取得

这样也应该可以吧  另一种思路 谢谢了
回复 使用道具 举报
本帖最后由 fagug 于 2016-3-2 12:21 编辑
天赐潇潇 发表于 2016-3-2 03:45
彬彬错了哦  

int a =random.nextInt(n-m+1)+m;

对,要+1,少算了后面的一个数

但是如要要算m-n之间的随机数,但是不包含m和n要怎么写?
回复 使用道具 举报
fagug 发表于 2016-3-2 12:14
对,要+1,少算了后面的一个数

但是如要要算m-n之间的随机数,但是不包含m和n要怎么写? ...

int a =random.nextInt(n-m-1)+m+1;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马