Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- DB 모델링
- 웹개발 기초
- 쿠버네티스
- docker
- 필기
- oracle
- 마크다운
- MVC 패턴
- 도커
- 기초 선택자
- docker 소개
- ORACLE 기초
- java 기초
- 기본 API
- 정보처리기사
- 데이터베이스
- 깃허브
- 프로그래밍 기초
- dql
- DB
- DB 개요
- 쿠버네티스 기본 개념
- Flutter
- VS Code
- java
- mybatis
- github
- view
- SQL
- DDL
Archives
- Today
- Total
핑구
04. 중복되지 않는 난수 출력하기 본문
난수를 출력하기 위해서는 Math.random() 메소드를 사용하여야 합니다.
Math.random()는 0 ~ 1 범위의 double 난수를 반환하는 메소드입니다.
따라서 원하는 범위의 난수를 반환하고 싶을 경우 약간의 연산이 필요합니다.
1. 0 ≤ Math.random() < 1
2. 원하는 범위의 값을 곱해 줍니다.
0 × 10 ≤ Math.random() × 10 < 1 × 10
3. 0부터 시작하는 값이기 때문에 1을 더해 줍니다.
0 + 1 ≤ Math.random() × 10 + 1 < 10 + 1
4. 정수형으로 출력되어야 하기 때문에 강제 형변환을 진행합니다.
(int)1 ≤ (int)Math.random() × 10 + 1 < (int)11
따라서 만약 1 ~ 10 범위의 난수를 구하려고 한다면 다음과 같이 작성하면 됩니다.
int num = (int)(Math.random() * 10 + 1);
난수를 중복 없이 사용하여야 하는 경우에는 먼저 수월한 저장을 위한 배열이 필요합니다.
배열을 만들어 준 후, 난수를 저장합니다.
이때 중복되지 않는 난수가 저장되려면 중첩 for문을 사용하여 중복 값인지 확인해 주어야 합니다.
만약 중복인 경우 i에서 1을 빼주어서 바깥쪽 for문이 한 번 더 실행되게 합니다.
값을 모두 저장한 후 출력하면 중복값이 없는 난수 배열이 출력됩니다.
int[] arr = new int[10];
for(int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 10 + 1);
for (int j = 0; j < i; j++) {
if (arr[i] == arr[j]) {
i--;
}
}
}
for(int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
03. 이것이 자바다 5장 확인 문제 (0) | 2021.07.28 |
---|---|
02. 이것이 자바다 4장 확인 문제 (0) | 2021.07.26 |
01. Hello, World (0) | 2021.07.26 |
00. Eclipse 설치하기 (0) | 2021.07.15 |
00. JAVA 설치하기 (0) | 2021.07.15 |