导航:首页 > 编程语言 > java计算概率

java计算概率

发布时间:2025-03-31 03:32:43

java程序:编写生成100个1-6之间的随机数,统计1—6每个出现的概率,菜鸟看不懂程序

1.用内置方法Math.random()产生一个随机数介于0~1。
2.强制转化为int类型,根据int类型的特点,这个数是0~5之间的整数。
3.得到的数加1,这样这个数就是介于1~6的整数,并且是随机的。
4.将介于1~6之间的这个整数赋值给randomNum
5.(重点)probability是个数组,这个程序的算法就是:利用probability这个数组记录随机数出现的次数,probability[0]记录随机数1出现的次数,就是当出现的随机数为1时,数组的probability[randomNum-1]项加1(randomNum-1是为了表现算法,实际的程序中是不需要先加1再减1的)。同理:其它的随意数也做这样的处理。这样,probability这个数组中[0]项保存的是1的出现次数,[1]项保存的是2出现的次数…………
6.输出随机数的值(后面加个空格“\t”)
7.循环到步骤第1.个步骤.

② 初学java,突然想算一下买20年双色球中一等奖概率,用java编译时没出错,运行时出错了。问一下哪错了。

classSsq{
publicstaticvoidmain(String[]args){
//Gailvaa=newZonggailv();
System.out.println(Zonggailv.g());
}
}

java里面一般用println输出。

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

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

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

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

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

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

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

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

Randomr=newRandom();	
intnum1=r.nextInt(6)+1;//r.next(6)生成的是0~5之间的数字,需要+1,才是[1~6]之间的数字

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

intnum=(int)(Math.random()*6)+1;
//(int)(Math.random()*6)生成的是0~5之间的整数
//需要+1才是[1~6]的数字

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

//本题使用数组来写代码比较方便,简洁.
importjava.util.Random;

publicclassRandomDemo{
publicstaticvoidmain(String[]args){
int[]times=newint[6];//6个格子的数组,存储出现的次数
intn=100;//循环的次数
Randomr=newRandom();
for(inti=0;i<n;i++){
intnum=r.nextInt(6)+1;//方法1随机产生1~6的数字
//intnum=(int)(Math.random()*6)+1;//方法2随机产生1~6的数字
times[num-1]=times[num-1]+1;//次数增加1
}

for(inti=0;i<times.length;i++){
System.out.println((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

④ java投掷骰子,求点数的出现概率

很简单 。
int [] num = new int[3]; //数组长度为3
int diag=0; //统计出现5的次数
for(int i=0;i>3;i++){ //掷骰子三次 ,也就是三个骰子
随机数字 num[i]=(int)(Math.random()*5)+1; //随机1-6的数字
if(num[i]==5){
diag++; //当骰子等于5的时候,统计次数加1;
}
}
double a=diag/3; //骰子出现5的次数,除以骰子总数,得到概率。
System.out.println(a);

⑤ java中如何以不同概率产生随机数1-30

Random rm = new Random();
int i = rm.nextInt(18);
int n = 0;
if(i > 8){
n = rm.nextInt(10)+1;
}else if(i > 2&&i <= 8){
n = rm.nextInt(11) + 10;
}else if(i<=2){
n = rm.nextInt(11) + 20;
}

这样生成的整数n是 3/6的概率在1-10之间,2/6的概率是在10-20之间,1/6的概率是在20-30之间(这种都是伪随机,但尽量接近概率)
你看看这样行不行
希望对你有帮助

⑥ java集五福活动概率技术如何实现

⑦ 求java算法:根据物品的数量来确定抽奖的概率(当物品数量为0时无论如何都不可能选到)

public class Lottery {

private int m = 1000;//发放奖券的数量
private int n = 2;//奖品的数量

public boolean getLottery(){
boolean isLottery = false;
double d = (double)n/(double)m;//中奖概率
double r = Math.random();//0~1之间的随机数,包括0
if(r<d){//如果随机数小于概率 那么中奖
n--;//奖品数量-1
isLottery = true;
}
m--;//奖券数量-1
return isLottery;
}

}

阅读全文

与java计算概率相关的资料

热点内容
阶层pdf 浏览:378
linuxgit安装配置 浏览:317
用源码搭建app要改什么 浏览:40
密码学教程pdf 浏览:1
亚马逊做的加密货币 浏览:79
怎么搭建云播服务器 浏览:865
网站客服机器人源码 浏览:314
2021程序员的出路 浏览:545
发行与承销pdf 浏览:943
编译器中的主要数据结构 浏览:894
7z解压ziputf8 浏览:96
python微博相册 浏览:104
雅思听力速成pdf 浏览:126
程序员还贷 浏览:462
地基上柱子筋加密 浏览:649
邮件加密服务器 浏览:734
手印直播源码 浏览:933
php网站后台密码忘记了 浏览:807
编译器可以分成几个阶段 浏览:259
linux查看文件类型命令 浏览:337