>  기사  >  Java  >  Java에서 난수를 생성하는 방법

Java에서 난수를 생성하는 방법

藏色散人
藏色散人원래의
2019-01-17 10:13:4836448검색

Java에서 난수를 생성하는 방법: 먼저 프로그램 클래스 시작 앞에 import 문을 넣은 다음 Random 개체를 만들고 마지막으로 특정 범위에서 난수를 선택합니다.

Java에서 난수를 생성하는 방법

이 문서의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터, Java 버전 8.0.

일련의 난수를 생성하는 것은 때때로 발생하는 일반적인 작업 중 하나입니다. Java에서는 java.util.Random 클래스를 사용하여 이를 간단히 달성할 수 있습니다.

모든 API 클래스와 마찬가지로 첫 번째 단계는 프로그램 클래스가 시작되기 전에 import 문을 넣는 것입니다.

 import java.util.Random;

다음으로 Random 개체를 만듭니다.

 Random rand = new Random();

Random 개체는 간단한 난수 생성기를 제공합니다. 객체의 메서드는 난수를 선택하는 기능을 제공합니다. 예를 들어, nextInt() 및 nextLong() 메소드는 각각 int 및 long 데이터 유형의 값 범위(음수 및 양수) 내의 숫자를 반환합니다.

 Random rand = new Random();
for (int j=0;j < 5;j++)
{
  System.out.printf("%12d ",rand.nextInt());
  System.out.print(rand.nextLong());
  System.out.println();
}

반환된 숫자는 무작위로 선택된 int 및 긴 값:

-1531072189 -1273932119090680678
1849305478  6088686658983485101
1043154343  6461973185931677018
1457591513  3914920476055359941
-1128970433 -7917790146686928828

from a 범위에서 난수 선택

일반적으로 생성할 난수는 특정 범위(예: 1에서 40 사이 포함)에서 나와야 합니다. 이를 위해 nextInt() 메소드는 int 매개변수를 허용할 수도 있습니다. 숫자 범위의 상한을 나타냅니다. 단, 선택 가능한 숫자 중 하나에 캡 번호가 포함되지 않습니다. 혼란스럽게 들릴 수도 있지만 nextInt() 메서드는 처음부터 작동합니다. 예:

 Random rand = new Random();
rand.nextInt(40);

는 0에서 39 사이의 임의의 숫자만 선택합니다. 1로 시작하는 범위에서 선택하려면 nextInt() 메서드의 결과에 1을 추가하면 됩니다. 예를 들어, 1에서 40 사이의 숫자를 선택하려면 결과에 1을 추가하세요.

 Random rand = new Random();
int pickedNumber = rand.nextInt(40) + 1;

범위가 더 높은 숫자에서 시작하는 경우 다음을 수행해야 합니다.

위 숫자의 시작 숫자를 빼고 1을 더합니다.

nextInt() 메서드의 결과에 시작 번호를 추가합니다.

예를 들어 5에서 35 사이의 숫자를 선택하려면 상한 숫자는 35-5 + 1 = 31이고 결과에 5를 추가해야 합니다.

 Random rand = new Random();
int pickedNumber = rand.nextInt(31) + 5;

랜덤 클래스는 얼마나 무작위인가요?

Random 클래스는 결정론적인 방식으로 난수를 생성한다는 점을 지적하고 싶습니다. 무작위성을 생성하는 알고리즘은 시드(seed)라는 숫자를 기반으로 합니다. 시드 번호를 알고 있는 경우 알고리즘으로 인해 발생하는 번호를 계산할 수 있습니다. 이를 증명하기 위해 Neil Armstrong이 달에 처음 발을 디딘 날의 숫자(1969년 7월 20일)를 시드 번호로 사용하겠습니다.

 import java.util.Random;
public class RandomTest {;
  public static void main(String[] args) {
    Random rand = new Random(20071969);
    for (int j = 0; j

누가 이 코드를 실행하든 생성된 "무작위" 숫자 시퀀스는 다음과 같습니다.

 3 0 3 0 7 9 8 2 2 5

기본적으로 :

 Random rand = new Random();

에서 사용하는 시드 번호는 1970년 1월 1일 이후의 현재 시간(밀리초)입니다. 일반적으로 이는 대부분의 목적에 충분히 무작위인 숫자를 생성합니다. 그러나 동일한 밀리초 내에 생성된 두 개의 난수 생성기는 동일한 난수를 생성한다는 점에 유의하십시오.

안전한 난수 생성기가 필요한 애플리케이션(예: 도박 프로그램)에 Random 클래스를 사용할 때도 주의하세요. 시드 번호는 애플리케이션이 실행된 기간을 기준으로 추측할 수 있습니다. 일반적으로 난수가 절대적으로 중요한 애플리케이션의 경우 Random 개체에 대한 대안을 찾는 것이 가장 좋습니다. 임의의 요소(예: 보드 게임의 주사위)만 필요한 대부분의 응용 프로그램에서는 제대로 작동합니다.

위 내용은 Java에서 난수를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.