-
[Java] - 랜덤 수 뽑아내기Java 2018. 11. 15. 16:19
Java에서 랜덤의 수를 뽑아 내는 방법은 Random 클래스를 사용하면 된다.
1. 범위 없이 랜덤값 뽑기
12345Random rd = new Random();for(int i=0; i<20; i++) {System.out.println("랜덤으로 뽑아낸 수 : " + rd.nextInt());}cs 아래와 같이 20번 랜덤수를 출력하게 되면
랜덤으로 뽑아낸 수 : -1599071783
랜덤으로 뽑아낸 수 : 1319311260
랜덤으로 뽑아낸 수 : 1383473972
랜덤으로 뽑아낸 수 : 2086303618
랜덤으로 뽑아낸 수 : -416746670
랜덤으로 뽑아낸 수 : 1070280201
랜덤으로 뽑아낸 수 : 68561784
랜덤으로 뽑아낸 수 : 495551546
랜덤으로 뽑아낸 수 : -413002621
랜덤으로 뽑아낸 수 : -1693355406
랜덤으로 뽑아낸 수 : -1907020970
랜덤으로 뽑아낸 수 : 1123988877
랜덤으로 뽑아낸 수 : 321053391
랜덤으로 뽑아낸 수 : 1303181506
랜덤으로 뽑아낸 수 : -1847654334
랜덤으로 뽑아낸 수 : 1949819666
랜덤으로 뽑아낸 수 : 1397523852
랜덤으로 뽑아낸 수 : -1181571013
랜덤으로 뽑아낸 수 : 1809568818
랜덤으로 뽑아낸 수 : -2025320321
정말 대중없이 값이 랜덤으로 나오는걸 볼 수 있다.
여기서 내가 원하는 랜덤수는 100 이하의 랜덤수다! 라고 조건을 주고 싶으면 아래처럼 범위를 입력해주면 된다.
12345Random rd = new Random();for(int i=0; i<10; i++) {System.out.println("랜덤으로 뽑아낸 수 : " + rd.nextInt(100));}cs 100의 수를 입력했다면 0 부터 100 까지의 랜덤의 수가 출력된다.
랜덤으로 뽑아낸 수 : 6
랜덤으로 뽑아낸 수 : 58
랜덤으로 뽑아낸 수 : 34
랜덤으로 뽑아낸 수 : 42
랜덤으로 뽑아낸 수 : 23
랜덤으로 뽑아낸 수 : 39
랜덤으로 뽑아낸 수 : 79
랜덤으로 뽑아낸 수 : 41
랜덤으로 뽑아낸 수 : 20
랜덤으로 뽑아낸 수 : 60
그럼 여기서 한가지 욕심이 생긴다.
나는 0부터 랜덤수를 뽑기 싫다!!
그럼 n ~ m 까지의 랜덤수를 뽑고자 한다면 어떻게 해야 할까??
Random 클래스 만으로는 힘들다.
Math.random() 을 이용해서 n 부터 m의 랜덤 수를 뽑아 낼 수 있다.
1Min + (int)(Math.random() * ((Max - Min) + 1));cs 최소값을 Min이라고 지정하고 Max를 최대값으로 지정했을때 Min <= X <= Max 의 값이 랜덤 값으로 출력된다.
만약 Min <= X < Max 의 값을 랜덤으로 뽑고 싶다면 아래와 같이 해주면 된다.
1Min + (int)(Math.random() * ((Max - Min)));cs 타입 지정자를 int로 해준 이유는 Math.random() 의 리턴 타입이 double 형이다.
double 타입의 랜덤 수를 뽑아내고 싶다면 타입 지정자를 int 로 해줄 필요는 없다.
'Java' 카테고리의 다른 글
[Java] - 객체의 특정한 값으로 객체 정렬하기 (0) 2018.11.15 댓글