package 测试包;
public class 随机数16 {
/
@param args
/
public static void main(String[] args) {
// TODO Auto-generated method stub
int aa[]=new int[100];
int bb[]=new int[6];
for(int i=0;i<100;i++){
aa[i]=(int)(Mathrandom()6+1);
if(i<6){
bb[i]=0;
}//if
}
for(int j=0;j<6;j++){
for(int k=0;k<100;k++){
if (j+1==aa[k]){bb[j]=bb[j]+1;}
}//for k
}//for j
for(int L=0;L<6;L++){
Systemoutprintln((L+1)+"出现的几率是:"+bb[L]+"%");
}
}
}
您好,任意一个骰子得4的概率是1/6,不得4的概率是5/6所以,这是个“二项分布”问题
C(20,5) x (1/6)^5 x [1-(1/6)]^(20-5)
= 15504 x (1/6)^5 x (5/6)^15
= 01294
每次掷骰子都是一次独立事件,彼此互不影响,投掷10次是另一个独立事件,投掷10次出现五次落在1-50之间另外五次落在51-100之间的概率最大,而你不能用已得结果推测下面的结果,因为它们彼此互不影响。就好比抽签问题,如果后面抽签的人不知道前面人抽的结果那么是公平的,每个人都是1/n,如果知道结果,那后面概率就变了。
你的要求实际就是等于,100数里面取数,要实现某些数先取到的概率大对吧,提供算法,是自己想的,不一定好
就是取到过后不再取的话很简单就是开个100的数组,取过的数就从里面删掉
提高某些数的概率的话我是这样想的
就是确认该数是不是被取到,就设置取2次概率
每一个数设置对应一个取到的概率值,从1到100之间,然后通过第一取到一个数再对应分析它的概率值来确认取没取
比如135这个数,首先在100数中它被取到的概率是相等的,然后第一比如取到了它就进入进一步分析他的概率值,比如设置135这个数的概率值为60,然后就再在1到100里取个随机值,然后和60比较,比60小的话就确认135被取到,如果比60大的话就确认135没被取到,再回到原来进行取数。
这样的话135的实际被取到的概率就提高了,而且可以通过设置概率值来设置被取数取到的概率,比如如果没有特殊要求的数概率值都设置为50,那它被取到的概率就是一半一半,然后调高概率值就是增加被取到的概率,降低概率值就是减少被取到的概率
R一个很方便的用处是提供了一套完整的统计表集合。函数可以对累积分布函数P(X≤x),概率密度函数,分位函数(对给定的q,求满足P(X≤x) > q的最小x)求值,并根据分布进行模拟。
在统计学中,产生随机数据是很有用的,R可以产生多种不同分布下的随机数序列。这些分布函数的形式为rfunc(n,p1,p2,),其中func指概率分布函数,n为生成数据的个数,p1, p2, 是分布的参数数值。上面的表给出了每个分布的详情和可能的缺省值(如果没有给出缺省值,则意味着用户必须指定参数)。
例:用0~1之间的均匀分布产生10个随机点
> runif(10)
[1] 0961465376 00075219250193619234 0137027246 0739370654 0072907082
[7] 0674551635 06507778110984664183 0796723066
大多数这种统计函数都有相似的形式,只需用d、p或者q去替代r,比如密度函数(dfunc(x, )),累计概率密度函数(也即分布函数)(pfunc(x,))和分位数函数(qfunc(p, ),0<p<1)。最后两个函数序列可以用来求统计假设检验中P值或临界值。例如,显著性水平为5%的正态分布的双侧临界值是:
> qnorm(0025)
[1] -1959964
> qnorm(0975)
————————————————
1用内置方法Mathrandom()产生一个随机数介于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个步骤
是要求概率吗,直接用概率公式就行了,需要循环吗?
还是要做程序循环生成6个数字,然后统计概率:
Public Sub 妈妈说中文作为变量名和函数名也是可以的_统计()
Dim 成功的生成了六个一样的数字的次数 As Integer
For 次数 as integer = 1 to 10000 '统计10000次
if 生成六个数字并返回是否一样 = True Then 成功的生成了六个一样的数字的次数+=1
Next
End Sub
Function 生成六个数字并返回是否一样() As Boolean
Dim k(6) as integer
For i as integer = 1 to 6
k(i) = Int(Rnd6)+1
if i >1 And k(i) <> k(i-1) Then Return False
Next
Return True
End Function
以上就是关于编写JAVA程序,生成100个1到6之间的随机数,统计1到6每个数出现的概率全部的内容,包括:编写JAVA程序,生成100个1到6之间的随机数,统计1到6每个数出现的概率、掷骰子求概率,怎么编程序、在100个数字里面,随机选出几个数,要其中的某些数出现的概率大的程序怎么写,且出现后就不会再出现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)