質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

594閲覧

あらかじめ用意されている100個のデータのヒストグラム作成方法

vi666

総合スコア6

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/11/22 02:09

100個のデータがテキストで用意されていて、そのデータからビン幅5ずつで155から190までのヒストグラムを作成したいです。そのときのヒストグラムは*で表したいです。
回答よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

こんな感じでしょうか。あまりコードの綺麗さにこだわりなく書いたのでご了承ください。
データファイルHistogram.txtを読み込むようにしています。

java

1import java.io.BufferedReader; 2import java.io.File; 3import java.io.FileNotFoundException; 4import java.io.FileReader; 5import java.io.IOException; 6 7public class Histogram { 8 public static void main(String[] args){ 9 int min = 155; 10 int max = 190; 11 int bin = 5; 12 int[] n = new int[(max-min)/bin]; 13 int[] d = new int[100]; 14 15 int i; 16 17 try{ 18 File file = new File("Histogram.txt"); 19 20 BufferedReader br = new BufferedReader(new FileReader(file)); 21 22 String str= null; 23 i = 0; 24 System.out.println("==========入力情報=========="); 25 while((str = br.readLine()) != null){ 26 d[i]=Integer.parseInt(str); 27 System.out.print(d[i]+" "); 28 29 i = i +1; 30 } 31 32 br.close(); 33 34 }catch(FileNotFoundException e){ 35 System.out.println(e); 36 }catch(IOException e){ 37 System.out.println(e); 38 } 39 for(int l=0;l<d.length;l++){ 40 for(int j=min;j<max;j=j+bin){ 41 if(d[l]>=j && d[l]<j+bin){ 42 n[(j-min)/bin]=n[(j-min)/bin]+1; 43 } 44 } 45 } 46 System.out.println(); 47 System.out.println("==========出力結果=========="); 48 49 50 for(int k=0;k<n.length;k++){ 51 if(k==0){ 52 System.out.print(min+"-"); 53 }else{ 54 System.out.print(" -"); 55 } 56 System.out.print(min+((k+1)*bin) + "|"); 57 for(int j=0;j<n[k];j++){ 58 System.out.print("*"); 59 } 60 System.out.println(); 61 } 62 } 63}

実行結果

>java Histogram ==========入力情報========== 167 140 161 142 110 173 159 103 113 115 150 117 114 182 130 165 158 127 168 131 174 160 103 100 125 133 183 171 185 123 161 180 166 197 170 118 186 137 142 195 166 125 158 138 162 166 149 158 110 105 146 102 171 173 152 157 158 163 136 131 179 109 157 167 124 128 120 165 154 199 187 121 150 108 198 158 181 162 144 140 112 169 157 130 124 158 172 124 200 164 137 115 197 155 144 178 158 149 192 163 ==========出力結果========== 155-160|************ -165|******** -170|********* -175|******* -180|** -185|**** -190|***

投稿2017/11/22 05:51

編集2017/11/22 05:54
ka_ei

総合スコア207

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ka_ei

2017/11/22 06:29

From-Toで出力されますが、Toの方は~以下ではなく~未満になってます。ご了承ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問