我是JAVA初学者.
产生随机数:
(int)(Math.random() * 6) + 1;

(int)(Math.random() * 10) % 6 + 1;
有什么区别?
劳智者详细解释.
谢谢!

解决方案 »

  1.   

    Math.random() 范围 0到1之间 不包括0和1%是取模运算。其他的自己看着学哈,很简单的,要有信心
      

  2.   

    非常感谢楼上各位的解答!
    尤其是lihan6415151528
    让我豁然开朗!
    但是,这两种方法随机产生的数其实都在
    正整数1到6之间,所以本质上没什么区别
    是不是可以得出如下结论:
    如果要随机产生1到n之间的正整数,
    (int)(Math.random() * 6) + 1;

    而(int)(Math.random() * 10) % 6 + 1;
    的效果是一样的.
    对吗?
      

  3.   

    其实没什么区别的,只有两种方法能得到自己想要的答案就行 
    因为 random产生的是0到1间的随机数  所以(int)(Math.random() * 10) % 6 + 1; 
    得到的答案可能要比 (int)(Math.random() * 6) + 1; 的值大 也就是范围上大点而已