请问Math.random()是作用是?以及max=9999,min=1000,
(int)(Math.random()*(max-min)+min)为什么就是一个四位数了?有点不太明白

解决方案 »

  1.   

    Math.random*number 产生一个 0 - number的一个数
    所以 (Math.random()*(max-min) 产生 0-8999中的一个数
     (Math.random()*(max-min) 在加上min 就是 1000-9999的一个数。
    (int)强转为整形
      

  2.   

    Math.random()产生(0,1]区间内的伪随机数(实数),注意左开右闭。然后再用一个变换y=(b-a)x+a将(0,1]区间变换为(a,b]区间(的实数),(int)又强制转换为(a,b]区间的整数。这样就等价于随机产生(a,b]区间中的随机整数。
      

  3.   

    不好意思,应该是[0,1)及[a,b)(左闭右开),多看看API。
      

  4.   

    random
    public static double random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。 
    第一次调用该方法时,它将创建一个新的伪随机数生成器,与以下表达式完全相同 new java.util.Random之后,新的伪随机数生成器可用于此方法的所有调用,但不能用于其他地方。 
    此方法是完全同步的,可允许多个线程使用而不出现错误。但是,如果许多线程需要以极高的速率生成伪随机数,那么这可能会减少每个线程对拥有自己伪随机数生成器的争用。个人技术博客 http://www.happyalaric.com
      

  5.   

    random()  返回带正号的 double 值,该值大于等于 0.0 且小于 1.0,沙发说得很清楚了。