java利用map来实现可视化统计随机数分布

代码如下:

import java.lang.Math;
import java.util.*;

public class RandomTest
{
    public static void main(String[] args) 
    {
        Random rand = new Random(100);
        Map <Integer, Integer> m = 
        new HashMap<Integer, Integer>();

        for (int i=0;i<10000 ;i++ ) 
        {
            //产生1至20之间的随机数
            int rNum = rand.nextInt(20);
            //map的get方法在key值不存在,即rNum第一次在map中被发现时,会返回null
            Integer frequency = m.get(rNum);
            //frequency == null 会返回一个boolean值,
            //在这个三目运算符中,当返回值为true时,在map中插入rNum并记录frequency=1
            //当返回值为false时,插入rNum,并在其原有frequency的基础上加1
            m.put(rNum, frequency==null? 1: frequency+1);   
        }
        //输出map 
        System.out.println(m);

        for (int count =0; count<m.size();count ++ ) {

            int abs = Math.abs(m.get(count)-500);

            System.out.printf("%02d --> %d --> %02d: ",count,m.get(count),abs);
            while (abs>0)
            {
            System.out.print("*");
            abs = abs -1;
            }
            System.out.println();           
        }

    }
}

输出结果:

{0=507, 1=491, 2=514, 3=476, 4=465, 5=473, 6=518, 7=500, 8=508, 9=489, 10=478, 11=500, 12=526, 13=501, 14=512, 15=527, 16=516, 17=498, 18=502, 19=499}

00 --> 507 --> 07: *******
01 --> 491 --> 09: *********
02 --> 514 --> 14: **************
03 --> 476 --> 24: ************************
04 --> 465 --> 35: ***********************************
05 --> 473 --> 27: ***************************
06 --> 518 --> 18: ******************
07 --> 500 --> 00: 
08 --> 508 --> 08: ********
09 --> 489 --> 11: ***********
10 --> 478 --> 22: **********************
11 --> 500 --> 00: 
12 --> 526 --> 26: **************************
13 --> 501 --> 01: *
14 --> 512 --> 12: ************
15 --> 527 --> 27: ***************************
16 --> 516 --> 16: ****************
17 --> 498 --> 02: **
18 --> 502 --> 02: **
19 --> 499 --> 01: *

关于printf()的使用方法,参见java中用printf方法来生成bar chart。

小白成长中,诸君共勉:)

猜你喜欢

转载自blog.csdn.net/qq_23889793/article/details/76039491
今日推荐