JAVA/자바의 정석

[자바의 정석 - 기초편] 4. (2) 임의의 정수 만들기

서영22 2023. 11. 25. 00:20

반올림 연산자 - Math.random()

0.0부터 1.0사이의 임의의 double 값 반환

0.0  <=  Math.random()  <  1.0

 

 

 < 1부터 3사이의 정수를 얻으려면? > 

1. 각 변에 3 곱하기 ( 범위 : 0.0~2.999 )  // 곱하는값 = 개별 값의 개수
     0.0 * 3  <=  Math.random() * 3  <  1.0 * 3
     0.0  <=  Math.random() * 3  <  3.0

2. 각 변을 int형으로 변환 ( 범위 : 0~2 )  // 소수점 아래 잘라주기
     (int)0.0  <=  (int)(Math.random() * 3)  <  (int)3.0
     0  <= (int)(Math.random() * 3)  <  3

3. 각 변에 1을 더한다 ( 범위 : 1~3 )
     0 + 1  <=  (int)(Math.random() * 3) + 1  <  3 + 1
     1  <=  (int)(Math.random() * 3) + 1  <  4

 

 

 

Quize 1. )  1~10 사이의 난수를 20개 출력하시오

// 1,2,3,4,5,6,7,8,9,10

for (int i = 1; i <= 20 ; i++)
       System.out.println(Math.random());                         // 0.0<=x<1.0
       System.out.println(Math.random() * 10);                  // 0.0<=x<10.0
       System.out.println((int)(Math.random() * 10));         // 0<=x<10 (0~9)
       System.out.println((int)(Math.random() * 10) + 1);   // 1<=x<11 (1~10)

 

 

Quize 2. )   -5~5 사이의 난수를 20개 출력하시오

// -5,-4,-3,-2,-1,0,1,2,3,4,5 : 11개

for (int i = 1; i <= 20 ; i++)
       System.out.println(Math.random());                         // 0.0<=x<1.0
       System.out.println(Math.random() * 11);                  // 0.0<=x<11.0
       System.out.println((int)(Math.random() * 11));         // 0<=x<11 (0~10)
       System.out.println((int)(Math.random() * 10) - 5);   // -5<=x<6 (-5~5)