[解決済み] javaでヒストグラムを作成する方法 [重複]。
2022-01-31 02:38:25
質問
重複の可能性があります。
javaで数字を記号に変換する方法は? 例えば、2の代わりに**に、3の代わりに***になど。
数値をヒストグラムに変換するにはどうすればよいですか?ヒストグラムは、その値がロールされた回数に基づいて2〜12の棒グラフを表示する必要があります。現在、私の出力は2番目の写真のようですが、最初のもののように見えるはずです。
public static void main(String[] args) {
// TODO code application logic here
System.out.print("Please enter how many times you want to roll two dice?");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int [] rolls = new int[n];
Random r1 = new Random();
Random r2 = new Random();
int dice1;
int dice2;
int two = 0;
int three = 0;
int four = 0;
int five = 0;
int six = 0;
int seven = 0;
int eight = 0;
int nine = 0;
int ten = 0;
int eleven = 0;
int twelve = 0;
for (int roll=0; roll < rolls.length; roll++)
{
dice2 = r2.nextInt(6)+1;
dice1 = r1.nextInt(6)+1;
System.out.println(roll + " The first dice rolled a " + dice1 + " the second dice rolled a " + dice2);
int sum;
sum = dice1 + dice2;
if (sum == 2)
two++;
if (sum == 3)
three++;
if (sum == 4)
four++;
if (sum == 5)
five++;
if (sum == 6)
six++;
if (sum == 7)
seven++;
if (sum == 8)
eight++;
if (sum == 9)
nine++;
if (sum == 10)
ten++;
if (sum == 11)
eleven++;
if (sum == 12)
twelve++;
}
System.out.println("Histogram of rolls:" );
System.out.println("2 occurred " + two + " times");
System.out.println("3 occurred " + three + " times");
System.out.println("4 occurred " + four + " times");
System.out.println("5 occurred " + five + " times");
System.out.println("6 occurred " + six + " times");
System.out.println("7 occurred " + seven + " times");
System.out.println("8 occurred " + eight + " times");
System.out.println("9 occurred " + nine + " times");
System.out.println("10 occurred " + ten + " times");
System.out.println("11 occurred " + eleven + " times");
System.out.println("12 occurred " + twelve + " times");
}
}
解決方法は?
これを実現するための様々なコードを紹介します。
配列の作成
int[] histogram = new int[13];
配列の位置をインクリメントします.
histogram[id]++;
ヒストグラムを印刷する
System.out.println("Histogram of rolls:" );
printHistogram(histogram);
ここにもいくつかのヘルパー関数があります。
private void printHistogram(int[] array) {
for (int range = 0; range < array.length; range++) {
String label = range + " : ";
System.out.println(label + convertToStars(array[range]));
}
}
private String convertToStars(int num) {
StringBuilder builder = new StringBuilder();
for (int j = 0; j < num; j++) {
builder.append('*');
}
return builder.toString();
}
コードは必要に応じて修正してください。
関連
-
[解決済み】javaで指定されたファイルが見つからない
-
[解決済み] JavaでSSLピアが正しくシャットダウンされない
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] hibernateでResultSetを抽出できない。
-
[解決済み】keytoolエラー 鍵屋が改ざんされたか、パスワードが不正確だった場合
-
[解決済み】Gradleがtools.jarを見つけ出さない
-
[解決済み】破損したjarファイル
-
[解決済み】Javaで文字列をコピーするにはどうしたらいいですか?
-
[解決済み】Javaの未処理例外について
-
[解決済み】予期しない型エラー
-
[解決済み] エラー - trustAnchors パラメータは空であってはなりません。
-
[解決済み】接続Java - MySQL : 公開鍵の取得は許可されていません。
-
[解決済み】CreateProcess error=2, The system cannot find file specified.