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

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

青灯夜游
青灯夜游원래의
2018-11-21 15:10:3658041검색

Java에서 난수를 생성하는 방법은 무엇입니까? 이 기사에서는 Java에서 난수를 생성하는 방법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Java에서는 일부 내장 메소드와 클래스를 사용하여 난수를 생성하는 세 가지 메소드가 제공됩니다.

1, java.util.Random 클래스

2, Math.random 메소드: 이중 유형 난수를 생성할 수 있습니다. .

3. ThreadLocalRandom 클래스

Java에서 난수 생성을 구현하는 방법을 살펴보겠습니다.

1.java.util.Random 클래스

Java 유틸리티 클래스 라이브러리의 클래스: java.util.Random은 다양한 유형의 난수를 생성하는 메소드를 제공합니다.

java.util.Random 클래스를 사용하여 난수를 생성하려면 먼저 이 클래스의 인스턴스를 만든 다음 해당 인스턴스를 사용하여 nextInt(), nextDouble(), nextLong() 등과 같은 메서드를 호출해야 합니다.

java.util.Random 클래스를 사용하면 임의의 정수 수, 부동 소수점 수, 배정밀도 수, 긴 정수, 부울 피연산자 및 기타 유형을 무작위로 생성할 수 있습니다.

생성하려는 숫자 범위의 상한을 설정하기 위해 메서드에 인수를 전달할 수 있습니다. 예를 들어, nextInt(6)은 0에서 5까지의 범위에 있는 숫자를 생성합니다.

// 随机数生成
// 使用java.util.Random; 
import java.util.Random; 

public class generateRandom{ 

	public static void main(String args[]) 
	{ 
		// 创建随机类的实例
		Random rand = new Random(); 

		// 在0到999范围内生成随机整数
		int rand_int1 = rand.nextInt(1000); 
		int rand_int2 = rand.nextInt(1000); 

		// 输出随机整数
		System.out.println("随机整数: "+rand_int1); 
		System.out.println("随机整数: "+rand_int2); 

		// 生成随机双精度数
		double rand_dub1 = rand.nextDouble(); 
		double rand_dub2 = rand.nextDouble(); 

		// 输出随机双精度数
		System.out.println("随机双精度数: "+rand_dub1); 
		System.out.println("随机双精度数: "+rand_dub2); 
	} 
}

실행 출력:

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

2. Math.random 메서드

Math 클래스에는 지수 계산, 로그 계산 등과 같은 다양한 수치 연산을 수행하는 다양한 메서드가 포함되어 있습니다. 다음 메소드 중 하나: random()은 양수 부호가 있는 이중 숫자를 반환할 수 있습니다. 값은 0.0보다 크거나 같고 1.0보다 작습니다. 즉, 값 범위는 왼쪽이 닫히고 오른쪽이 열리는 간격입니다. [0.0, 1.0).

random() 메서드에서 반환된 값은 의사 무작위로 선택되며 [0.0, 1.0) 범위 내에서 (대략) 균일하게 분포됩니다.

참고: 이중 유형 난수만 생성할 수 있습니다.

아래에서는 이 방법을 사용하여 Java 코드를 통해 난수를 생성하는 방법을 소개합니다.

// Math.random() 生成随机数
import java.util.*; 

public class generateRandom 
{ 
	public static void main(String args[]) 
	{ 
		// 随机双精度数的生成
		System.out.println("随机双精度数: " + Math.random()); 
		System.out.println("随机双精度数: " + Math.random()); 
	} 
}

실행 결과:

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

3. java.util.concurrent.ThreadLocalRandom 클래스

ThreadLocalRandom 클래스는 다음과 같습니다. java 1.7 다중 스레드 간에 발생하는 경쟁을 해결할 수 있는 동시 난수 생성 기능을 제공하기 위해 도입되었습니다. 정수, 배정밀도, 부울 및 기타 유형의 난수를 생성할 수 있습니다.

ThreadLocalRandom의 주요 구현 세부 사항:

1), Random의 AtomicLong을 시드로 사용하는 대신 일반 long을 사용합니다

2), 자체적으로 ThreadLocalRandom 인스턴스를 생성할 수 없습니다. 생성자가 비공개이므로 정적 메서드 ThreadLocalRandom을 사용할 수 있습니다. .current()

3), CPU 캐시를 인식하며 8개의 긴 가상 필드를 사용하여 64비트 L1 캐시 라인을 채웁니다

이제 간단한 Java 코드를 통해 이를 사용하는 방법을 소개합니다. 클래스는 난수를 생성합니다:

// 随机数的产生
// 使用java.util.concurrent.ThreadLocalRandom类
import java.util.concurrent.ThreadLocalRandom; 

public class generateRandom 
{ 
	public static void main(String args[]) 
	{ 
		// 在0到999范围内生成随机整数
		int rand_int1 = ThreadLocalRandom.current().nextInt(); 
		int rand_int2 = ThreadLocalRandom.current().nextInt(); 

		// 输出随机整数
		System.out.println("Random Integers: " + rand_int1); 
		System.out.println("Random Integers: " + rand_int2); 

		// 生成随机双精度数
		double rand_dub1 = ThreadLocalRandom.current().nextDouble(); 
		double rand_dub2 = ThreadLocalRandom.current().nextDouble(); 

		// 输出随机双精度数
		System.out.println("Random Doubles: " + rand_dub1); 
		System.out.println("Random Doubles: " + rand_dub2); 

		// 生成随机布尔值
		boolean rand_bool1 = ThreadLocalRandom.current().nextBoolean(); 
		boolean rand_bool2 = ThreadLocalRandom.current().nextBoolean(); 

		// 输出随机布尔值
		System.out.println("Random Booleans: " + rand_bool1); 
		System.out.println("Random Booleans: " + rand_bool2); 
	} 
}

실행 결과:

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

요약: 위 내용은 이 기사의 전체 내용입니다. 모든 사람의 학습에 도움이 되기를 바랍니다. 더 많은 관련 비디오 튜토리얼을 보려면 Java Tutorial을 방문하세요!

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

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