生成试验数据的茎叶图,并显示不同区间数据的个数
来源:互联网 发布:淘宝店铺过户近亲属 编辑:程序博客网 时间:2024/05/11 11:18
设定试验数据取值在 30~99 之间(如下图),其中在30~39 之间有6 个数31,、39、39、32、39、31,则
表示为 3 | 1 9 9 2 9 1; 在 40~49 之间有2 个数43、49,则表示为 4 | 3 9;依此类推,由此得到的图形成为
数据的“茎叶图”。
【编程要求】
1. 显示格式参考下图,生成20 个30~99 之间的随机数,并以每行10 个值显示。
2. 统计数据中,第一列数值为对应区间的数值个数,后面为茎叶图部分。
3. 程序中定义一个通用的方法,用于求一维数组数据的茎叶图以及各区间数据个数。方法名称约定为:
public String generateStemAndLeafPlot(int[] data)
其中 String 返回值为生成好的数据(注意换行),禁止在这个方法中直接打印输出。
4. 另外定义一个随机生成30~99 随机值的方法,可设计直接返回一维数组供上述方法使用
我写的代码如下(仅供参考):
package midsemester; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Random; public class StemAndLeafPlot { private int[] sourceData = new int[20]; private Map<Integer, List<Integer>> sourceMap = new HashMap<>(); public void initSourceData() { Random rand = new Random(); for(int i = 0; i < 20; i++) { sourceData[i] = rand.nextInt(69) + 31; } System.out.println("生成的随机数为:"); for(int j = 0; j < sourceData.length; j++) { System.out.print(sourceData[j] + " "); if(j == 9 || j == 19) { System.out.println(); } } } public void initSourceMap() { if(sourceData == null || sourceData.length == 0) { return; } for(int i : sourceData) { if(sourceMap.size() == 0 || !sourceMap.containsKey(i/10)) { List<Integer> list = new ArrayList<>(); list.add(i); sourceMap.put(i/10, list); } else { List<Integer> list = sourceMap.get(i/10); list.add(i); } } } public String generateStemAndLeafPlot(int[] data) { List<Integer> list = sourceMap.get(data[0]/10); StringBuilder sb = new StringBuilder(list.size() + " " + data[0]/10 + "|"); for(int i : list) { sb.append(i%10); } return sb.toString(); } public void getResult() { initSourceData(); initSourceMap(); System.out.println("得到的茎叶图为:"); Collection<List<Integer>> datas = sourceMap.values(); Iterator<List<Integer>> it = datas.iterator(); while(it.hasNext()) { List<Integer> list = (List<Integer>) it.next(); int[] data = new int[list.size()]; for(int i = 0; i < list.size(); i++) { data[i] = list.get(i); } System.out.println(generateStemAndLeafPlot(data)); } } public static void main(String[] args) { StemAndLeafPlot sa = new StemAndLeafPlot(); sa.getResult(); } }
运行结果:
0 0
- 生成试验数据的茎叶图,并显示不同区间数据的个数
- 试验数据的保存
- 数组 类别数 不同数据的个数。
- 显示不同数据的地址
- 根据数据,显示不同的数据颜色
- 求区间并的个数
- MYSQL的数据同步试验
- HDU 5869 区间不同GCD的个数
- 随机生成12个数,并显示对应的月份
- Python 案例002(获取不同数据区间的和)
- iOS 不同按钮点击显示不同的tableview数据
- 试验十:随机生成10个不同的数
- Dll给主程序传递数据的试验
- 增量式旋转编码器的试验数据
- SPOJ D-query(区间不同的数的个数)
- DropDownList绑定动态数据并显示已经选中的数据
- SPOJ DQUERY 区间内不同数的个数 主席树
- 查询区间内不同数字的个数 lydsy1878
- IO流之字节流
- 大数据Spark “蘑菇云”行动第100课:Hive性能调优之企业级Join、MapJoin、GroupBy、Count、数据倾斜彻底解密和最佳实践
- codeforce 742 E. Arpa’s overnight party and Mehrdad’s silent entering (分食物||二分图染色+dfs)
- MySql 1130-host ... is not allowed to connect to this MySql server
- 广电发布“中国原创游戏精品出版工程”通知
- 生成试验数据的茎叶图,并显示不同区间数据的个数
- hover
- linux sed 匹配替换
- RandomAccessFile
- 网站程序员学习路线
- tomcat配置文件server.xml含义说明
- 关于python爬取笔趣阁网站上面完美世界小说
- Linux下DNS服务器的操作实例(正/反向解析,主/从服务器搭建)
- 证明吝啬SAT问题为NP完全问题。