Java编程生成100个1~6之间的随机数,统计1~6每个数出现的概率;

Java编程生成100个1~6之间的随机数,统计1~6每个数出现的概率;,第1张

首先:关于随机数的生成方法

java里生成随机数主要有2个方法比较常用

1Random类 在 javautil包里, 有多种方法可以随机产生int, long, double,boolean等类型

2Math 类,在javalang包里, 可以生成一个[0~1)之间的随机浮点数

备注 :a )使用Random需要导包,但是使用Math无需导包 

b  )Math底层还是调用了Random类的nextDouble()方法

其次:关于随机数的代码

例如生成[1,6]之间的随机数

1 Random的方法,生成的随机数

Random r= new Random();
int num1 = rnextInt(6)+1;//rnext(6)生成的是0~5之间的数字,需要+1,才是[1~6]之间的数字

2 Math的方法,进行随机数的生成

int num = (int) (Mathrandom()  6) + 1;
//(int) (Mathrandom()  6) 生成的是0~5之间的整数
//需要+1 才是[1~6]的数字

关于次数统计的方案

1, 可以使用HashMap<K,V>的方法进行存储统计 因为key不重复,所以key可以来存数字1~6, 而对应的V就可以用来存储出现的次数

2 可以使用数组的方法来存出现的次数 数字1~6 是连续的, 数组下标也是连续的我们可以用下标[0~5] 来代表数字[1~6], 数组的每个格子用来存数字数字出现的次数

完整的代码

//本题使用数组来写代码比较方便,简洁
import javautilRandom;
public class RandomDemo {
public static void main(String[] args) {
int[] times = new int[6];//6个格子的数组,存储出现的次数
int n = 100;//循环的次数
Random r= new Random();
for (int i = 0; i < n; i++) {
int num = rnextInt(6)+1;//方法1 随机产生1~6的数字
//int num = (int) (Mathrandom()  6) + 1;//方法2 随机产生1~6的数字
times[num - 1] = times[num - 1] + 1;//次数增加1
}

for (int i = 0; i < timeslength; i++) {
Systemoutprintln((i + 1) + "出现的次数" + times[i]);
}
}
}

输出:  当n=100时

1出现的次数13
2出现的次数16
3出现的次数17
4出现的次数23
5出现的次数21
6出现的次数10

输出: 当n=1000时

1出现的次数160
2出现的次数177
3出现的次数161
4出现的次数169
5出现的次数175
6出现的次数158

结论:

n=100时, 6是次数是10,  4次数是23,  两者的次数相差2倍多

n=1000时, 6次数是158, 2次数是177, 两者比较接近

说明:  当随机的次数越多 那么随机数的概率也越来越接近~

以上就是关于Java编程生成100个1~6之间的随机数,统计1~6每个数出现的概率;全部的内容,包括:Java编程生成100个1~6之间的随机数,统计1~6每个数出现的概率;、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9737686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存