java在1到6中产生随机数

java在1到6中产生随机数
(Math.random()*10)%6+1 为什么要乘10 再取余6呀?
Math.random()范围是0<= <1 乘了10是 0<= <10
再取余6 就算取最大的10取余6结果也是4呀 结果永远不能到6吧

当然可以到 6 的。
5 余 6 就是 5,再加 1 就是 6。
但是一般用 Random 类。给你一个Demo:

import java.util.Random;

public class RandomDemo {
public static void main (String args[]) {
Random rnd = new Random();
int n = rnd.nextInt(6) + 1; // nextInt(int x) 返回 0~(x-1) 之间的随机数。
System.out.println(n);
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-28
int n = (int)(Math.random()*6+1);

这是正解,,,不加int的话是加小数的1到6

如果想取-10 到10的随机数应该用
int n = (int)(Math.random()*10-10);本回答被提问者采纳
第2个回答  2009-12-25
你这算法有问题 直接乘以6不就完事了? 干吗要乘10
(Math.random()*6)+1
第3个回答  2009-12-25
Random rad = new Random();
rad.nextInt(6)+1;
第4个回答  2009-12-25
int n = (int)(Math.random() * 6 + 1);
相似回答