关于Java里产生1-6随机数的方法 怎样在java中产生1到6的随机数

www.zhiqu.org     时间: 2024-05-31
用java.util.Random 类比较好用Random r=new Random();int i=r.nextInt(6)+1;生成1到6的数字应该机率比较相等;(int)(Math.random()*10)%6+1产生0到9内的整数再 得到1,2,3,4的概率大些因为(int)(Math.random()*10)%得到的数是从0到9;0%6+1=1.。。。。。。5%6+1=6……6%6+1=1.。。。。9%6+1=4;所以不相等另一种 (int)(Math.random()*6)+1从0.1到0.9 *6得到数是int型是0,1,1,2,3,3,4,4,5,+

我认为2种方法产生的1~6的几率是相等的,都为1/6.第一种(int)(Math.random()*10)%6得到0~6的随机数,每个数的产生的概率为1/7,再加上1,得到1~6的随机数,0不再出现,每个数产生的几率1/6.另一种(int)(Math.random()*6)产生0~5,每个数产生的概率为1/6,再加上1,得到1~6的随机数,每个数产生的几率仍为1/6.

Java语言可以通过Random类的对象来实现1-6随机数的生成方法,代码如下:

import java.util.Random;
public class Radom{
    public static void main(String[] strs){
        Random rand = new Random();
        System.out.println(rand.nextInt(5)+1);
    }
}


Math类的方法fandom随机生成一个0.0到1.0(不含1.0)之间的double值 (int)(Math.random()*10)产生0到9内的整数再 %6 确实可以得到 1~6的随机数,但是 7 8 9 %6 一样得到 1 2 3 ,是不是1 2 3 得到的几率会大一些些呢?呵呵(int)(Math.random()*6)产生0到5内的整数,。。。你可以设计一个小程序来试验,发现它的六个数出现的几率是差不多的。

math.random 产生的是什么

关于Java里产生1-6随机数的方法~

我认为2种方法产生的1~6的几率是相等的,都为1/6.

第一种(int)(Math.random()*10)%6得到0~6的随机数,每个数的产生的概率为1/7,再加上1,得到1~6的随机数,0不再出现,每个数产生的几率1/6.

另一种(int)(Math.random()*6)产生0~5,每个数产生的概率为1/6,再加上1,得到1~6的随机数,每个数产生的几率仍为1/6.

public class H {
public static void main(String[] args){
Random rand = new Random();
int a = 0;
a = rand.nextInt(6);
System.out.println(a);
}
}


#杭秦天# java里怎么产生5到15的随机数? -
(19242256723): Random r = new Random(); System.out.println(r.nextInt(10)+5); 第一句生成一个随机类的对象 第二句中,r.nextInt(10),是指生成一个伪随机数,大小在0~10之间, 将最后的结果再加上五,那么生成的随机数就在5~15之间. 希望对你有帮助.

#杭秦天# java中怎样产生 - 100到100的随机数? -
(19242256723): 标准库里只能产生0以上的随机数,你可以通过随机奇偶数的方式决定这个数是正还是负就可以了. 关键代码: Random r = new Random(System.currentTimeMillis()) ; int radom = 0; //这是生成的随机数 if (r.nextBoolean) { random = r.nextInt(101) ; //101表示不能超过101,即最大100 } else { random = -r.nextInt(101) ; }

#杭秦天# JAVA 随机对象产生方法 -
(19242256723): ramdon r=new ramdon() int result=r.nextint(50) 这个是产生50内的随机整数.

#杭秦天# java中的随机循环怎么做?
(19242256723): java产生随机数的几种方式 n 在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有. n 在java...

#杭秦天# 一个关于Java中产生随机数的问题.急求,在线等,谢谢 -
(19242256723): 可以的,nextFloat产生0-1浮点数,*5+1之后就是1-6round是取最接近参数的整数值,这样可以取到6如果直接强制转换int m = int(5*x+1)永远取不到6

#杭秦天# java 怎么产生随机数,具体点就是怎么产生1或者2 -
(19242256723): java.util.Random rd = new java.util.Random(); int sj = rd.nextInt(2)+1;//因为是从0开始的,排除0就+1 System.out.println(sj);

#杭秦天# java在1到6中产生随机数 -
(19242256723): 当然可以到 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); } }

#杭秦天# java产生随机数的几种方式 -
(19242256723): 方法1(数据类型)(最小值+Math.random()*(最大值-最小值+1)) 例:(int)(1+Math.random()*(10-1+1)) 从1到10的int型随数 方法2 获得随机数 for (int i=0;i{System.out.println((int)(1+Math.random()*10));}(int)(1+Math.random()*10...

#杭秦天# 如何在java中产生随机数? -
(19242256723): 1. 在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有. 2. 在java.util这个包里面提供了一个...

#杭秦天# 编写JAVA程序,生成100个1到6之间的随机数,统计1到6每个数出现的概率 -
(19242256723): class Test2 { public static void main(String[] args) { int a[] = new int[100]; int count[] =new int[7]; System.out.println("生成的随机数"); for(int i = 0; i < 100; i++){ a[i] = (int)(Math.random()*6) + 1; count[a[i]]++; System.out.print(a[i] + " "); } ...