산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java 난수 생성: Random 클래스와 Math.random 실전 가이드

이 간결한 튜토리얼에서는 Java에서 난수 값을 생성하는 두 가지 가장 일반적인 접근법인 java.util.Random과 Math.random()을 배웁니다. 둘 다 JDK에 포함되지만, 각기 약간 다른 용례와 고유한 기능을 제공합니다.

java.util.Random으로 난수 생성

Random 클래스는 int, long, float, double, boolean 값을 생성할 수 있습니다. 한 번 인스턴스화하여 같은 객체를 재사용하면 성능 오버헤드를 피할 수 있습니다.

아래는 0부터 99(포함) 사이의 난수 정수 10개를 출력하는 완전한 예제입니다. 상한을 포함하려면 인수에 1을 더하세요.

import java.util.Random;
public class RandomNumbers {
    public static void main(String[] args) {
        Random rng = new Random();
        for (int i = 0; i < 10; i++) {
            int randomNumber = rng.nextInt(100); // 0-99
            System.out.println("Random No: " + randomNumber);
        }
    }
}

일반적인 출력:

Random No: 17
Random No: 57
Random No: 73
Random No: 48
Random No: 68
Random No: 86
Random No: 34
Random No: 97
Random No: 73
Random No: 18

Random은 대부분의 용도에서 스레드 안전하므로, 필요시 여러 스레드에서 같은 인스턴스 공유 가능. 재현 가능한 시퀀스를 위해 시드 전달: new Random(42).

Math.random()으로 난수 생성

[0.0, 1.0) 범위의 double만 빠르게 필요할 때 Math.random()이 편리합니다. 내부적으로 단일 Random 인스턴스에 위임하므로 소규모 작업에 효율적입니다.

예제: double 값 10개 생성.

public class DemoRandom {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            System.out.println(Math.random());
        }
    }
}

일반적인 출력:

0.46518450373334297
0.14859851177803485
0.5628391820492477
0.6323378498048606
0.1740198445692248
0.9140544122258946
0.9167350036262347
0.49251219841030147
0.7426056725722353

다른 범위의 정수나 double을 생성하려면 Math.random()에 산술을 결합하세요. 예를 들어 1부터 10까지의 난수 정수(포함): (int)(Math.random() * 10) + 1.

핵심 요약

java

  1. 마이크로소프트 Azure에 Java EE 애플리케이션 배포: 단계별 가이드
  2. Java List 인터페이스: 개요, 구현체, 핵심 메서드, Set과의 차이
  3. Java 컬렉션 알고리즘 마스터하기: 정렬, 셔플링 등
  4. Java 객체 배열 생성하기: 단계별 완벽 가이드
  5. Java String length() 메서드: 문자열 크기 구하기 (예제 포함)
  6. Java String compareTo() 마스터: 문법, 활용 케이스, 실전 예제
  7. Java BufferedReader로 파일 읽기: 실전 가이드와 예제
  8. 자바에서 char를 String으로 변환하기: 실전 예제와 모범 사례
  9. 자바에서 재귀를 이용해 문자열 뒤집기: 단계별 가이드
  10. Java 8 스트림: 데이터 처리를 위한 선언적 접근