书上说是[0,1)范围那么如果我要[0,1]范围的话,最通常的方法是什么呢?

解决方案 »

  1.   

    先随机,再四舍五入求整!
    Math.round(Math.random());
      

  2.   

    如果在[0,1]我的个人办法只能在四舍五入了。
    在其它范围,可用Random中的一个别next(n)方法就可以了。
      

  3.   

    比如你要取7到15的随机数。你可以(int)(Math.random() * (15 - 7 + 1)) + 7所有取这种整数间的随机数的方法都可以这样套。
      

  4.   

    lz是要取0到1之间(包括0和1)的double。
      

  5.   

    大家要明白LZ的意思是要取0到1之间(包括0和1)的double值
      

  6.   

    public static void main(String[] args) { final int CHANGERATE = 3; 
    double result; int i = (int)(Math.random() * CHANGERATE); 
    switch(i) { 
    case 0: 
    case 1: result = Math.random(); 
    break; 
    case 2: result = 1.0; 
    break; 
    default: result = Math.random(); 
    break; 

    System.out.println(result); 
    } 通过调整CHANGERATE的值可以调整产生1.0的概率。 
    虽然概率分布不是很均匀,但是可以实现你的要求。
      

  7.   

    确实要用来取一个数的话,[0,1)和[0,1]基本没区别不过要真正达到[0,1]里取作一值,也就是double,其中可以取1的情况的话,办法是什么呢不知道讨论这个有没有意义,不过我想知道有没有这个方法
      

  8.   

    (Math.random()+Math.random())/2
    投机取巧一下哈
      

  9.   

    double d = Math.random() * 2;//[0,2)
    if (d <= 1)//取小于等于1的部分,效率减半
    System.out.println(d);
    这样行不
      

  10.   

    如果是要去0-1之间的double  貌似 Math.random(); 直接就可以了吧~~~
      

  11.   


    Random rand = new Random();
    double r = rand.nextDouble();
    if (r == 0) {
        r = rand.nextInt(2);
    }