java 等概率0 1_java生成随机数0或1,只能是0,1二者其一,最好可以使1或0出现的概率符合高斯分布(正态分布)...

java生成随机数0或1,只能是0,1二者其一,最好可以使1或0出现的概率符合高斯分布(正态分布)

关注:72  答案:3  mip版

解决时间 2021-02-07 15:43

e6cb1a03ad541b3098697807b7bf1798.png

提问者少走感情路

2021-02-06 23:39

如果可以产生数学期望为μ,方差为σ*σ的10*1000正态分布随机矩阵的话就再感谢不过了!

或者是使得0出现的概率阀值是0.7,是int rd=Math.Random()>0.7?1:0; 这条语句么?不好意思,我上条问题补充说的有问题,我是希望往数据库中生成1000条记录,每条记录有十个是0或1的数,然后每行数1的和符合正态分布,比如说正态分布的数学期望为μ,方差为σ*σ。

最佳答案

e6cb1a03ad541b3098697807b7bf1798.png

二级知识专家心苍凉

2021-02-07 00:04

Java内置了高斯正态随机数

Random.nextGaussian()获得均值为0,标准差为1的正态分布。

Random r=new Random();

for(int i=0;i<20;i++)

System.out.println(r.nextGaussian());

=======

-0.13281412372658716

-0.01315269766483013

-0.056744105795208055

-1.0402491360478257

-0.5311391585982737

-0.3630802799191039

-0.9866340328819281

-0.8579720715397737

-0.9265915705393113

-0.21839994469893823

0.3671093015925613

-0.6560992663799461

-1.2695699508671745

0.046509998380311696

0.1952527864179513

0.9997730342084369

如果求阀值0.7,

Random r=new Random();

int c0=0,c1=0;

for(int i=0;i<10000;i++){

byte n=(byte) (r.nextInt(10)>=7?1:0); //获得一个0或1

if(n==0)c0++; else c1++;

}

System.out.println("zero:"+(c0/10000.0)+" one:"+(c1/10000.0));

=========

打印概率

zero:0.7068 one:0.2932

全部回答

e6cb1a03ad541b3098697807b7bf1798.png

1楼萌逗

2021-02-07 02:03

一个0分题,多个要求、还随意变题意,

题主你真把这里当庙来求神许愿了?有人理你就知足吧。

人要知好歹!别贱到不识好歹。

e6cb1a03ad541b3098697807b7bf1798.png

2楼妳旳笑魅惑了涐旳瞳

2021-02-07 00:41

高斯0-1分布就是正态0-1随机分布。

在java中可用如下语句:

1. a=5;b=6;c=7;

2. a=randn(a);%生成正方矩阵

3. a=randn(a,b);%生成非正方矩阵

4. a=randn(a,b,c);%生成三维矩阵

我要举报

如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

→点此我要举报以上信息!←

推荐资讯

大家都在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值