zoukankan      html  css  js  c++  java
  • java:产生小数位数为2的随机概率,使得和为1

    public static List<InstSec> setDataSec(List<String> instno) {
    		List<InstSec> result = new ArrayList<InstSec>();
    		String[] mon ={"2014-01","2014-02","2014-03","2014-04"};
    		int[] flag ={1,2,3,4,5};
    		
    		List<String> instnosub5 = new ArrayList<String>();
    		for(int i=0;i<instno.size();i++){
    			if(!instnosub5.contains(instno.get(i).substring(0,5))){
    				instnosub5.add(instno.get(i).substring(0,5));
    			}
    		}
    		
    		//对于每个organValue,每个月,都有五个等级,对应flag prop
    		for(int i=0;i<instnosub5.size();i++){
    			for(int j=0;j<mon.length;j++){
    				float[] prop = genProp();//注意:在此处产生随机概率
    				for(int k=0;k<flag.length;k++){
    					InstSec inst=new InstSec();
    					inst.setInst_no_sub5(instnosub5.get(i));
    					inst.setSa_tx_m(mon[j]);
    					inst.setFlag(flag[k]);
    					inst.setProp(prop[k]);
    					result.add(inst);
    				}
    			}
    		}
    		return result;
    	}
    	
    	public static float[] genProp(){
    		//产生概率随机数,且让和为1
    		float[] prop =new float[5];
    		int[] randInt =new int[5];
    		int sum=0;
    		for(int i=0;i<5;i++){
    			randInt[i]=1+(int)(Math.random()*10);
    			sum+=randInt[i];
    		}
    DecimalFormat dF=new DecimalFormat(".00"); float sumprop=0; for(int i=0;i<5;i++){ prop[i]= Float.parseFloat(dF.format(1.0*randInt[i]/sum)); // System.out.println("prop is "+prop[i]); sumprop+=prop[i]; } // System.out.println("sumprop is "+sumprop); sumprop=Float.parseFloat(dF.format(sumprop)); if(sumprop<1) prop[4]+=1-sumprop; else prop[4]-=sumprop-1; // System.out.println("prop[4] is "+prop[4]); return prop; }

      注意:向SQL中传参数的下标是从1开始,java的substring方法从0开始

  • 相关阅读:
    zabbix学习笔记----概念----2019.03.25
    用深信服AC控制方位话机注册链路的开、关
    方位话机冗余线路注册问题测试过程
    执行python文件报错SyntaxError: Non-ASCII character 'xe8' in file, but no encoding declared
    centos 7.4安装python3.7.4
    zabbix基础使用--添加ping监控
    snmp监控f5
    FortiGate 服务License注册步骤
    centos 7.4安装zabbix 3
    安装centos 6.7&7.4
  • 原文地址:https://www.cnblogs.com/kxdblog/p/4197831.html
Copyright © 2011-2022 走看看