반응형
728x170
Math 클래스
java.lang.Math 클래스는 수학 계산에 사용할 수 있는 메소드를 제공하고 있다. Math 클래스가 제공하는 메소드는 모두 정적(static) 이므로 Math 클래스로 바로 사용이 가능하다. 다음은 Math 클래스가 제공하는 메소드를 설명한 표이다.
메소드 | 설명 | 예제코드 | 리턴값 |
int abs(int a) double abs(double a) | 절대값 | int v1 = Math.abs(-5); double v2 = Math.abs(-3.14); | v1 = 5 v2 = 3.14 |
double ceil(double a) | 올림값 | double v3 = Math.ceil(5.3); double v4 = Math.ceil(-5.3); | v3 = 6.0 v4 = -5.0 |
double floor(double a) | 버림값 | double v5 = Math.floor(5.3); double v6 = Math.floor(-5.3); | v5 = 5.0 v6 = -6.0 |
int max(int a, int b) double max(double a, double b) | 최대값 | int v7 = Math.max(5, 9); double v8 = Math.max(5.3, 2.5); | v7 = 9 v8 = 5.3 |
int min(int a, int b) double min(double a, double b) | 최소값 | int v9 = Math.min(5, 9); double v10 = Math.min(5.3, 2.5); | v9 = 5 v10 = 2.5 |
double random( ) | 랜던값 | double v11 = Math.random( ); | 0.0 <= v11 < 1.0 |
double rint(double a) | 가까운 정수의 실수값 | double v12 = Math.rint(5.3); double v13 = Math.rint(5.7); | v12 = 5.0 v13 = 6.0 |
long round(double a) | 반올림값 | long v14 = Math.round(5.3); long v15 = Math.round(5.7); | v14 = 5 v15 = 6 |
대표적인 것이 Math.random() 메소드이다. 이 메소드는 0.0 과 1.0 사이의 범위에 속하는 하나의 double 타입의 값을 리턴한다.
이것을 응용하려면
(int)(Math.random()*10) 을 할 수 있다. 이렇게 하면 범위가
0부터 9까지의 숫자가 나오게 된다. 1부터 10까지 이용하게 하려면
(int)(Math.random()*10)+1 으로 하면 된다.
만약 start 지점부터 start+n 범위에 속하는 즉
start <= 숫자 < (start+n) 을 하기 위해선 다음과 같이 하면된다.
int num = (int)(Math.random() * n) + start;
Random 클래스
java.util.Random 클래스는 난수를 얻어내기 위해 다양한 메소드를 제공한다. Math.random()메소드는 0.0에서 1 사이의 double 난수를 얻지만 Random 클래스는 boolean, int, long, float, double 난수를 얻을 수 있다.
Random 클래스로부터 Random객체를 생성하는 방법은 다음 2가지 생성자를 이용한다.
생성자 | 설명 |
Random() | 호출 시마다 다른 종자값(현재시간 이용)이 자동 설정된다 |
Random(long speed) | 매개값으로 주어진 종자값이 설정된다 |
그리고 이 클래스에는 밑의 메소드가 있다.
리턴값 | 메소드(매개변수) | 설명 |
boolean | nextBoolean() | boolean 타입의 난수를 리턴 |
double | nextDouble() | double 타입난수 리턴(0.0 <= ~ <1.0) |
int | nextInt() | int 타입 난수 리턴(-2^31≤~≤ (2^31 -1) |
int | nextInt(int n) | int 타입 난수를 리턴(0 <= ~ < n) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class RanEx { public static void main(String[] args) { int[] selectNum = new int[6]; Random ran = new Random(3); System.out.println("선택번호 : "); for(int i = 0 ; i < 6 ; i++) { selectNum[i] = ran.nextInt(45) + 1; System.out.print(selectNum[i]+"\t"); } } } Colored by Color Scripter |
이런식으로 사용할 수 있다
반응형
그리드형
'java' 카테고리의 다른 글
자바 날짜(Calendar)와 유닉스 시간 활용 (0) | 2017.08.18 |
---|---|
자바 날짜(Date, Calendar) 클래스 (0) | 2017.08.18 |
자바 와퍼(wrapper, 포장) 클래스, 박싱(boxing), 언박싱(unboxing), 자동 박싱(auto boxing) (0) | 2017.08.18 |
자바 배열 정렬(Arrays.sort() 이용) (0) | 2017.08.18 |
자바 정규 표현식(regular expression) (0) | 2017.08.18 |