>  기사  >  Java  >  Java의 난수 생성기

Java의 난수 생성기

WBOY
WBOY원래의
2024-08-30 16:27:17745검색

난수는 보드 게임용 주사위, 도박 프로그램 등과 같은 애플리케이션을 만드는 데 일반적으로 사용됩니다. 일반적으로 난수 생성에는 많은 시간이 걸립니다. 그러나 Java 프로그래밍 언어에서는 세 가지 방법을 사용하여 이를 달성할 수 있습니다. 이에 대한 내용은 아래 Java의 난수 생성기 함수 섹션에서 설명합니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

Java의 난수 생성기 기능

Java에서는 다음 세 가지 방법을 사용하여 난수를 생성할 수 있습니다.

  • Math.random 방식
  • java.util.Random 클래스
  • ThreadLocalRandom 클래스

1. Math.random() 메소드

Java Math 클래스는 로그, 평균, 지수화 등의 계산 작업을 위한 다양한 메소드를 제공합니다. 무작위()는 그 중 0.0과 1.0 범위 내에서 양의 double 값을 반환하는 메소드 중 하나입니다. 1.0은 포함적이고 1.0은 배타적입니다. 이 방법은 매개변수를 사용하거나 사용하지 않고 사용할 수 있습니다. 매개변수가 주어지면, 생성된 난수는 주어진 매개변수의 범위 내에서 생성됩니다.

예시 #1

코드:

public class RandomNumber {
double num; //Declare a variable num
//Method which generates a random number
public double randnum()
{
num=Math.random();
return num;
}
// Main Method of a program
public static void main(String[] args) {
//Printing a random number
System.out.println("Random Number generated inside main method: "+Math.random());
//Create an object of the class RandomNumber
RandomNumber randomobj=new RandomNumber();
//Store the return value obtained from randnum method in a variable randomval
double randomval=randomobj.randnum();
//Printing the random number stored in variable randomval
System.out.println("Random Number generated inside randomnumber method: "+randomval);
}
}

출력:

Java의 난수 생성기

위 예제에서는 Math.random() 메서드를 사용하여 난수를 기본 메서드 내부에 직접 적용하는 방법과 객체를 사용하여 Math.random()이 포함된 메서드를 호출하는 두 가지 방법으로 난수를 생성합니다.  위의 설명에서도 언급했듯이 0.0~1.0 범위 내에서 2개의 난수가 생성되는 것을 볼 수 있습니다.

매개변수 범위 내에서 난수를 생성하기 위해 사용되는 일반적인 표현식은 다음과 같습니다.

Math.random()*  (( 최대값 – 최소값 ) +1 ) + 최소값

예시 #2

여기서 maxvalue는 범위의 상한이고 min value는 범위의 하한입니다. 예를 들어 10~20 사이의 난수를 생성하려면 최대값을 20, 최소값을 10으로 설정합니다.

코드:

public class RandomNumParameters {
public double randomnum(double x,double y)//max value-y, min value-x
{
double z =(Math.random()*((y-x)+1)+x); //Formula for random number generation within a range
return z;
}
public static void main(String[] args)
{
RandomNumParameters ran=new RandomNumParameters(); //Create instance for the class RandomNumParameters
double num=ran.randomnum(3.0, 10.0); //Call the Method
System.out.println("Random number generated within the range of 3 and 10: "+num );
} }

출력:

Java의 난수 생성기

2. java.util.Random 클래스

Java.util.random 클래스는 float, long, 정수, double, Boolean 등과 같은 다양한 데이터 유형의 난수를 생성합니다. 숫자 범위를 인수로 전달하여 해당 범위 내에서 난수를 생성할 수도 있습니다. . 이 클래스를 사용하기 위해서는 java.util의 Random 클래스를 import(java.util.Random)해야 합니다. 이 클래스를 가져온 후에는 인스턴스를 생성하고 해당 인스턴스를 사용하여 next long(), nextInt() 등의 메서드를 호출합니다.

코드:

//Java program to generate Random numbers using Random class
package Sample;
import java.util.Random; //import Random Class
public class RandomNum {
public static void main(String[] args) {
Random rand=new Random(); //Create instance of Random class
double randomnum=rand.nextDouble(); //Assign the Random Double value in randomnum variable
System.out.println("Random Double value: "+ randomnum);
}
}

출력:

Java의 난수 생성기

위 프로그램에서는 nextDouble() 메서드를 사용하여 임의의 double 값이 생성됩니다.

3. ThreadLocalRandom 클래스

ThreadLocalRandom 클래스는 Java 버전 1.7에 도입된 특수한 유형의 Random 클래스입니다. ThreadLocalRandom.current().nextInt()는 난수를 생성하는 데 사용되는 일반적인 메서드 중 하나입니다. 일반적으로 멀티스레드 애플리케이션에 사용됩니다.

코드:

//Java Program to generate random numbers using ThreadLocalRandom Class
import java.util.concurrent.ThreadLocalRandom;
public class RandomNumThread {
public static void main(String[] args) {
//print a random double
System.out.println("Random Double value using ThreadLocalRandom: "+ThreadLocalRandom.current().nextDouble());
}
}

출력:

Java의 난수 생성기

정수 생성

ThreadLocalRandom 클래스와 Random 클래스를 사용하여 임의의 정수를 생성할 수 있습니다. 두 경우 모두 nextInt() 메서드가 동일한 용도로 사용됩니다.

코드:

//Java program to generate Random integer numbers using Random and THreadLocalRandom Class
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class RandomInteger {
public static void main(String[] args) {
Random rnd=new Random(); //Create instance of Random class
int randomnum1=rnd.nextInt(); //Random Integer value using Random Class
int randomnum2=rnd.nextInt(30); //Random Integer value within the range of 30
int randomnum3= ThreadLocalRandom.current().nextInt(); //Random Integer value using ThreadLocalRandom Class
System.out.println("Random Integer value using Random Class: "+ randomnum1);
System.out.println("Random Integer value within the range of 30: "+ randomnum2);
System.out.println("Random Integer value using ThreadLocalRandom Class: "+ randomnum3);
}
}

출력:

Java의 난수 생성기

위의 예에서는 nextInt() 메소드 중 하나가 30을 인수로 갖는 3개의 Random 정수형 숫자가 생성됩니다. 그래서 난수를 생성할 때 30이 상한으로 설정되고, 0(기본 하한)이 하한으로 설정됩니다.

부동소수점 숫자 생성

정수 생성과 유사하게 부동 소수점 숫자는 nextFloat() 메서드를 사용하여 생성할 수 있습니다. 이 메서드는 Random 클래스와 ThreadLocalRandom 클래스 모두에서 사용할 수 있습니다.

코드:

//Java program to generate Random Float numbers using Random and THreadLocalRandom Class
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class RandomFloat {
public static void main(String[] args) {
Random rnd=new Random(); //Create instance of Random class
float randomnum1=rnd.nextFloat(); //Random Float value using Random Class
float randomnum2= ThreadLocalRandom.current().nextFloat(); //Random Float value using ThreadLocalRandom Class
System.out.println("Random float value using Random Class: "+ randomnum1);
System.out.println("Random float value using ThreadLocalRandom Class: "+ randomnum2);
}
}

출력:

Java의 난수 생성기

결론 – Java의 난수 생성기

Java에는 프로그램에서 사용할 수 있는 수많은 기능이 포함되어 있습니다. 이는 처리 시간과 코드 줄을 줄이는 데 도움이 됩니다. 난수 생성은 이러한 기능 중 일부를 사용할 수 있는 작업 중 하나입니다. 이 문서에서는 이를 달성하기 위한 다양한 방법을 다루고 있습니다.

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

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