반응형
<배열과 난수 처리>
난수란? 무작위 숫자를 의미한다.
○ 난수 발생 방법 :
1) 난수 발생 전용 객체를 선언한다. Random rd = new Random();
2) 객체 선언 시, import java.util.Random; 을 추가하여 Random을 사용할 수 있도록 한다.
3) Random 클래스의 nextInt() 메소드를 사용하여, 객체명.nextInt(정수) 형태로 사용한다.
rd.nextInt(100);
4) 이때, 0 부터 정수 n-1까지의 수 중 무작위 정수(난수) 1개를 발생시킨다.
1 부터 정수 n 사이에 난수를 발생시키고 싶으면 객체명.nextInt(정수)+1 형태로 사용한다.
rd.nextInt(100)+1;
1
2
3
4
5
6
7
8
9
|
int[] arr = new int[size]; // size는 발생시킬 난수의 개수
Random rd = new Random();
for(int i=0;i<size;i++) {
arr[i] = rd.nextInt(100)+1;
}
//-- rd.nextInt(100) → 0 ~ 99 까지의 무작위 정수 한 개 발생
// rd.nextInt(100)+1 → 1 ~ 100까지의 무작위 정수 한 개 발생
|
cs |
○ 문제 :
사용자로부터 임의의 정수를 입력받아 그 정수의 개수만큼 난수(1~100)를 발생시켜 배열에 담고,
배열에 담겨있는 데이터들 중 가장 큰 값과 가장 작은 값을 선택하여 결과를 출력하는 프로그램을 구현한다.
○ 풀이 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
import java.util.Scanner;
import java.util.Random;
public class Test090 {
public static void main(String[] args) {
// Scanner 인스턴스 생성
Scanner sc = new Scanner(System.in);
// 안내 메세지 출력
System.out.print("발생시킬 난수의 개수 입력 : ");
int size = sc.nextInt();
// size 변수에 담아낸 수 만큼의 배열방 만들기
// (배열 선언 및 메모리 할당)
int[] arr = new int[size];
// 무작위 숫자(난수)를 발생시키기 위해서는
// 난수 발생 전용 객체가 필요하다.
// → java.util.Random
Random rd = new Random();
// ※ Random 클래스의 nextInt(int n) 메소드
// 0 ~ 매개변수로 넘겨받은 정수 n-1 까지의 수 중
// 무작위 정수(난수) 1개를 발생시킨다.
// 테스트
// System.out.println("발생한 난수 : " + rd.nextInt(10));
// 0 ~ 9 까지의 무작위 정수 한 개~!!!
// 배열 구성
for(int i=0;i<size;i++) {
arr[i] = rd.nextInt(100)+1;
}
//-- rd.nextInt(100) → 0 ~ 99 까지의 무작위 정수 한 개 발생
// rd.nextInt(100)+1 → 1 ~ 100까지의 무작위 정수 한 개 발생
// 테스트 → 구성된 배열의 전체 요소 출력
/*
for(int i=0;i<size;i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
*/
//--==>> 8 65 17 34 19 86 84 30 78 91
// 가장 큰 값, 가장 작은 값 확인
int max, min; //-- 최대값, 최소값
max=min=arr[0]; //-- max = min = 8;
for(int i=1;i<size;i++) {
if(max<arr[i])
max=arr[i];
if(min>arr[i])
min=arr[i];
}
// 결과 출력
System.out.printf("가장 큰 값 : %d, 가장 작은 값 : %d\n", max, min);
}
}
|
cs |
[실행 결과]
발생시킬 난수의 개수 입력 : 10
가장 큰 값 : 91, 가장 작은 값 : 8
반응형
'스터디 > 개념정리' 카테고리의 다른 글
다형성이란?/업캐스팅/다운캐스팅/상속/java (0) | 2020.02.15 |
---|---|
상속의 기본 개념/클래스 상속/java (0) | 2020.02.15 |
메소드 오버로딩과 오버라이딩/java (0) | 2020.02.15 |