ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java:产生小数位数为2的随机概率,使得和为1(转)

2019-10-12 19:57:17  阅读:264  来源: 互联网

标签:java randInt 数为 float prop int NUM sumprop 小数位


参考https://www.cnblogs.com/kxdblog/p/4197831.html

package com.thesis.Method1;

import java.text.DecimalFormat;


public class MainSolution {


private static final int NUM = 5;
public static void main(String[] args){

for(float f :genProp()){
System.out.println(f );
}
}


public static float[] genProp(){
//产生概率随机数,且让和为1
float[] prop =new float[NUM];
int[] randInt =new int[NUM];
int sum=0;
for(int i=0;i<NUM;i++){
randInt[i]=1+(int)(Math.random()*10);
sum+=randInt[i];
}
DecimalFormat dF=new DecimalFormat(".00");
float sumprop=0;
for(int i=0;i<NUM;i++){
prop[i]= Float.parseFloat(dF.format(1.0*randInt[i]/sum));
sumprop+=prop[i];
}
sumprop=Float.parseFloat(dF.format(sumprop));
if(sumprop<1){
prop[NUM-1]+=1-sumprop;
}
else {
prop[NUM - 1] -= sumprop - 1;
}
return prop;

}

}

标签:java,randInt,数为,float,prop,int,NUM,sumprop,小数位
来源: https://www.cnblogs.com/ffaiss/p/11663601.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有