자바의 정석 - 기초편
임의의 정수 만들기
ODaram
2022. 8. 2. 13:43
임의의 정수 (=난수) 만들기
Math.random() - 0.0과 1.0 사이의 임의의 double값을 반환
0.0 <= Math. random() < 1.0 ( 0.0 ~ 0.9999999 ...)
1~3 정수 구하고 싶은 경우
1) 각 변에 3을 곱한다. (곱하는 값 : 개별값의 갯수)
0.0 *3 <= Math. random() *3 < 1.0 *3
-> 0.0 <= Math. random() *3 < 3.0
2) 각 변을 int형으로 변환한다.
-> (int)0.0 <= (int)(Math. random() *3) < (int)3.0
-> 0 <= (int)(Math. random() *3) < 3 0~2 까지의 범위 이기 때문에 +1 을 해줌
3) 각 변에 1을 더한다.
0 +1 <= (int)(Math.random() * 3) +1 < 3 +1
-> 1 <= (int)(Math.random()*3)+1 < 4
Q1. 1~10 사이의 난수를 20개 출력하시오.
int num = 0;
for (int i = 1; i <= 20; i++) { // 20개 출력
// System.out.println(Math.random()*10); // 0.0 <= x < 10.0
// System.out.println((int)Math.random()*10); // 0 <= x < 20
System.out.println(((int)Math.random()*10)+1); // 1 <= x < 21
}

Q2. -5 ~ 5 사이의 난수르 20개 출력하시오.
int num = 0;
for (int i = 1; i <= 20; i++) { //20개 출력
// System.out.println(Math.random()); // 0.0 <= x < 10.0
// System.out.println((Math.random()*11)); // 0.0 <= x < 11.0
// System.out.println((int)(Math.random()*11)); // 0 <= x < 11
System.out.println((int)(Math.random()*11)-5); // -5 <= x < 6
}