자바 랜덤 함수를 사용한 (JAVA Random)무작위 난수 생성 방법
첫번째 방법은 Math 클래스의 random 메소드를 사용하는 방법입니다.
0~1 사이의 double형 난수를 리턴하여 *10을 해주고 int형으로 변환 후 a, b, c, d 라는 이름을 가진 int형 변수에 담아 출력하는 예제입니다.
두번째는 Random 클래스를 사용하는 방법입니다.
boolean nextBoolean() float nextFloat()등등 random.nextInt(100)을 입력하시면 0~100사이의 난수가 발생합니다.
소스
import java.util.Random;
public class h5bak_random {
public static void main(String[] args) {
int a = (int) (Math.random()*10);
int b = (int) (Math.random()*10);
int c = (int) (Math.random()*10);
int d = (int) (Math.random()*10);
int e = (int) (Math.random()*10);
System.out.println(a+","+b+","+c+","+d+","+e);
System.out.println("=========================");
Random random = new Random();
int f = random.nextInt(10);
int g = random.nextInt(10);
int h = random.nextInt(10);
int i = random.nextInt(10);
int j = random.nextInt(10);
System.out.println(f+","+g+","+h+","+i+","+j);
}
}
출력결과
'Language > JAVA' 카테고리의 다른 글
| Description Resource Path Location Type Java compiler level does not match the version of the installed Java project facet. (0) | 2013.12.09 |
|---|---|
| 자바 형변환(Java Casting) 예제 (5) | 2013.08.19 |
| 자바 스트링 토크나이저(Java StringTokenizer) (2) | 2013.07.11 |
| 자바 랜덤 함수(Java random) (9) | 2013.07.10 |
| 자바 반복문(For문, 향상된 for문) (1) | 2013.07.03 |
| 자바 switch case 조건문 예제 (0) | 2013.07.01 |
| 자바 배열(java array) (0) | 2013.06.24 |
| 자바 구구단 소스 (0) | 2013.05.08 |
| 자바 환경변수 설정 (62) | 2013.01.26 |
| 자바 JDK 다운로드 및 설치 방법 (22) | 2013.01.26 |

댓글을 달아 주세요
읽다 궁금한점이 있는데요...
int a = (int) (Math.random()*10);
과
int f = random.nextInt(10);
의 다른점이 있나요?
위의 Math.random()은 Math클래스의 random() 메서드를 사용한 것이고,
아래의 random.nextInt() 방법은 Random 클래스를 사용한 예제입니다.
Random 클래스를 사용하면 다양한 방법으로 난수값을 생성할 수 있습니다.
예를들어 random.nextDouble(), random.nextFloat() 처럼 다양한 숫자 범위의 형태로 생성이 가능합니다.
위의 방법이나 아래의 방법 모두 int형 난수를 int형 변수에 저장하는 소스입니다.
random 쓸때 *10 이렇게 뒤에 붙여주고 사용하는이유가 난수발생할때 10안에 숫자만 쓸수있게 붙여주는건가요??뒤에 *100이면 100안에 숫자이죠??
double형 난수가 0.1, 0.2 ... 0.9 이렇게 결과가 나오는데
여기에 10을 곱해주면 결과값은 1, 2, ... 9 와 같이 정수로 리턴이 되겠죠.
만약 100 안의 난수를 반환하겠다 라고 한다면
Random 클래스를 사용하여 범위를 지정하는게 간단합니다.
궁궁한점 질문 랜덤함수 값을 1.2 로만햇을때
그니깐 랜덤으로 1 , 2 둘중 하나만 랜덤으로 한숫자만 나옵니다
300번을 돌렷을때
122121112122212111121222121121211...
숫자가 이리게속 컴퓨터가 임의로 게속 나올때 패턴을 아는방법이 있나요?
전부는 아니여도 300번중 단 10개라두 나올 숫자를 맞출수 있을런지요 불가능하나요?
말그대로 랜덤이라 패턴은 없어요~
패턴이 필요하시면 랜덤 말고 패턴을 만드시는게 빠르실듯..
Random random = new Random () ;
int f = random.nextInt(100);
일때
0부터 100까지가아니라
50부터 100까지로 할수있는 방법 없을까요?
Random rand;
int minNum, maxNum;
int randomNum = rand.nextInt(maxNum - minNum + 1) + minNum;
이 정도 식으로 구하면 어떨까요?
0~100 사이의 랜덤 값을 산출 후
50이라는 범위 시작값을 더해주면 될 것 같습니다.
참고로 nextInt()는 최상위 값을 제외한 값으로 랜덤값이 산출이 되므로 1을 더해준 것입니다.
이렇게 해보세요
int p = (Math.random()<.5)?1:2;