자바의 정석 - 기초편

임의의 정수 만들기

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
}

1~10 사이의 난수 20개 출력된 값

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
    
}