Java의 히스토그램 프로그램
Yashaswi Kothari
2023년10월12일
히스토그램을 사용하면 다양한 범주의 값 수를 유지할 수 있습니다. 그래픽으로 표현할 수도 있습니다.
이 기사에서는 던져진 주사위의 합계를 저장할 히스토그램을 생성하기 위해 Java를 사용할 것입니다.
값을 확인하기 위해if-else
래더를 사용합니다. if-else
래더는 한 요소를 여러 값과 비교하는 효율적인 방법입니다. 우리는 다른 정수 변수에서 각 합계의 수를 유지합니다. 각 변수는 일치가 발생하면 증가합니다.
사용자에게 히스토그램 배열의 크기를 입력하도록 요청합니다. 이 배열은 각 주사위가 굴리는 총 횟수를 나타냅니다. 그런 다음 2부터 12까지 동시에 던진 두 개의 주사위의 합으로 발생하는 숫자를 초기화합니다.
사용자가 두 주사위 값을 입력하면 그 합계를 계산합니다. if-else
래더는 합계를 다른 가능성과 비교하고 일치가 발생할 때마다 증가합니다.
이 모든 것을 다음 프로그램에서 구현할 것입니다.
import java.io.*;
class Main {
public static String toStars(int number) {
StringBuilder temp = new StringBuilder();
for (int i = 0; i < number; i++) {
temp.append("*");
}
return temp.toString();
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Total rolls for each dice?");
int n = Integer.parseInt(br.readLine());
int[] rolls = new int[n];
int d1;
int d2;
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++) {
System.out.println("First dice roll");
d1 = Integer.parseInt(br.readLine());
System.out.println("Second dice roll");
d2 = Integer.parseInt(br.readLine());
System.out.println(" The first dice rolled a " + d1 + " the second dice rolled a " + d2);
int sum;
sum = d1 + d2;
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 " + toStars(two) + " times");
System.out.println("3 occurred " + toStars(three) + " times");
System.out.println("4 occurred " + toStars(four) + " times");
System.out.println("5 occurred " + toStars(five) + " times");
System.out.println("6 occurred " + toStars(six) + " times");
System.out.println("7 occurred " + toStars(seven) + " times");
System.out.println("8 occurred " + toStars(eight) + " times");
System.out.println("9 occurred " + toStars(nine) + " times");
System.out.println("10 occurred " + toStars(ten) + " times");
System.out.println("11 occurred " + toStars(eleven) + " times");
System.out.println("12 occurred " + toStars(twelve) + " times");
}
}
출력:
Total rolls for each dice?5
First dice roll
1
Second dice roll
2
The first dice rolled a 1 the second dice rolled a 2
First dice roll
2
Second dice roll
1
The first dice rolled a 2 the second dice rolled a 1
First dice roll
5
Second dice roll
4
The first dice rolled a 5 the second dice rolled a 4
First dice roll
1
Second dice roll
1
The first dice rolled a 1 the second dice rolled a 1
First dice roll
3
Second dice roll
1
The first dice rolled a 3 the second dice rolled a 1
Histogram of rolls:
2 occurred * times
3 occurred ** times
4 occurred * times
5 occurred times
6 occurred times
7 occurred times
8 occurred times
9 occurred * times
10 occurred times
11 occurred times
12 occurred times
최종 출력을 표시하기 위해 모든 가능성에 대한 빈도를 별의 수로 변환하는 별도의 함수toStars()
를 생성합니다. 이 방법은 시각적으로 매력적이며 히스토그램을 잘 표현합니다.