Math.random()好像是不可以做出两边都是闭合的区间,
只能做出一边闭合,一边不是闭合的区间来要0.4~0.8之间的随机函数,包含0.8,不包含0.4(double)
这个就可以,
(-1 * Math.random() * 0.4) + 0.8
因为你的闭合区间方向和Math.random相反,所以必须先乘以-1,改变原来的闭合方向
>>>>(-1,0]然后除以(1.0 / 0.4 )是为了将原来大小为1的区间改变成为0.4的区间
>>>>(-0.4,0]再加上0.8调整到正确位置
>>>>(0.4,0.8]

解决方案 »

  1.   

    看看random就知道了。很简单的。
      

  2.   

    要0.4~0.8之间的随机函数,4和8都包含(要int型) 
    这个改一下,说错了,是要要4~8之间的随机函数,4和8都包含(要int型)
      

  3.   

    import java.util.*;public class Untitled1 {
        public Untitled1(int param) {
            int a = new Random().nextInt(param) + 4;
            System.out.println("Got: " + a);
        }    public static void main(String[] args) {
            int num = Integer.parseInt(args[0]);
            Untitled1 untitled1 = new Untitled1(num);
        }
    }
      

  4.   

    4~8之间的随机函数,4和8都包含(要int型)
    这个就很简单,因为就只有5种情况
    double d = Math.random();
    int randResult = (int)Math.floor(d / 0.2)  + 4;
      

  5.   

    要想包括8你用的时候参数写成num = 5; 这样产生的随机整数数就是[0,5)再加上4就是[4,9),不包括9。这样行么?
      

  6.   

    真的没能取0和1的随机数??
    “要0.4~0.8之间的随机函数,0.4和0.8都包含”如果这样的随机数都没有,那Math就太逊了吧