자바 랜덤함수 예제

Random 클래스 nextInt 메서드는 실제로이 예제 코드의 모든 작업을 수행합니다. 나는 다음Int 방법을 랜덤 클래스 Javadoc에 설명한 것보다 더 잘 설명 할 수 없으므로 해당 설명서의 설명은 다음과 같습니다. 임의로 생성된 비트입니다. 응용 프로그램을 개발하는 동안 종종 난수를 생성해야 합니다. Java는 주로 java.lang.Math 및 java.util.Random 클래스를 통해 난수를 생성하는 지원을 제공합니다. 혹시 자신의 자바 프로그램에서 임의의 int이 필요한 경우,이 간단한 예제가 도움이되기를 바랍니다. Random의 두 인스턴스가 동일한 시드로 만들어지고 각각에 대해 동일한 메서드 호출 시퀀스가 만들어지면 동일한 숫자 시퀀스를 생성하고 반환합니다. 이 속성을 보장하기 위해 특정 알고리즘은 Random 클래스에 대해 지정됩니다. Java 구현은 Java 코드의 절대 이식성을 위해 클래스 Random에 여기에 표시된 모든 알고리즘을 사용해야 합니다.

그러나 Random 클래스의 하위 클래스는 모든 메서드에 대한 일반 계약을 준수하는 한 다른 알고리즘을 사용할 수 있습니다. [Java의 초기 버전에서는 결과가 잘못 계산되었습니다: getRandomNumberInts() 메서드는 최소(포함)와 최대(배타적) 사이의 임의 정수 스트림을 생성합니다. ints() 메서드가 IntStream을 생성함에 따라 코드는 이 스트림의 첫 번째 요소를 설명하는 OptionalInt 개체를 반환하는 findFirst() 메서드를 호출합니다. 그런 다음 코드는 getAsInt()메서드를 호출하여 OptionalInt에서 int 값을 반환합니다. 임의 클래스의 개체는 objGenerator로 초기화됩니다. 임의 클래스에는 다음Int와 같은 메서드가 있습니다. 이렇게 하면 상한으로 지정된 인수에 따라 난수가 제공되지만 하한은 0.Thus인 반면, 10개의 난수가 표시됩니다. Random.ints() 메서드를 사용하여 지정된 임의 정수 값의 스트림을 생성하는 코드는 Java에서 java.util 패키지의 수학 클래스를 제공하여 난수를 생성합니다. 클래스 에 의해 setSeed의 구현 무작위 주어진된 시드의 48 비트를 사용 하는 발생 합니다. 그러나 일반적으로 재정의 메서드는 긴 인수의 64비트를 모두 시드 값으로 사용할 수 있습니다. java.util.Random의 인스턴스는 스레드 안전입니다.

그러나 스레드 간에 동일한 java.util.Random 인스턴스를 동시에 사용하면 경합이 발생하여 성능이 저하될 수 있습니다. 대신 다중 스레드 디자인에서 ThreadLocalRandom을 사용하는 것이 좋습니다. 랜덤 클래스를 많이 사용하려는 경우 임의 클래스를 시드하는 개념에 대해 아는 것이 도움이 됩니다. 태양의 랜덤 클래스 자바 독이 좋은 토론을 가지고 있지만, 더그 볼드윈에 의해이 임의의 클래스 페이지는 정말 난수와 씨앗의 좋은 토론을 제공합니다. 부울, float 또는 긴 값을 포함한 다른 임의 값을 생성해야 하는 경우 Java Random 클래스에는 다음 을 포함한 이 nextInt 메서드와 유사한 다른 메서드가 있습니다. 1에서 32(포함)에서 반환된 값의 많은 저차 비트가 독립적으로 선택된 비트 값(약)이 되며, 각 비트값은 (대략) 0 또는 1일 가능성이 높습니다.