728x90
난수(random) 발생
임의의 수를 발생시키는 매서드 Random( )을 사용한다.
import java.util.Random 클래스 패키지가 필요하다.
(숫자 입력) int rand = new Random( ).nextInt( ); / Math.random( );
System.currentTimeMillis ( )
"현재 시간"을 사용해 난수가 계속 바뀐다.
random 한 숫자를 추출하기 위해서는 늘 변하는 값이 있어야한다.(seed)
컴퓨터는 내장된 pseudo(system random number) number를 가지고 있다가 랜덤한 숫자가 연산 등에서 필요하면 추출한다.
package Java05;
import java.util.Random;
public class Test05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random random = new Random();
random.setSeed(System.currentTimeMillis());
// 지속적으로 바뀌는 "현재 시간"을 사용해 난수가 계속 바뀐다.
System.out.println("랜덤한 n개 미만의 정수 반환 : " + random.nextInt(46));
System.out.println("랜덤한 Boolean : " + random.nextBoolean());
System.out.println("랜덤한 Long값 실수 반환 : " + random.nextLong());
System.out.println("랜덤한 Float값 실수 반환 : " + random.nextFloat());
System.out.println("랜덤한 Double값 실수 반환 : " + random.nextDouble());
System.out.println("랜덤한 정규분포 난수 반환 : " + random.nextGaussian());
}
}
package Java05;
import java.util.Random;
public class Test07 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random random = new Random();
random.setSeed(System.currentTimeMillis());
System.out.println("0~1 사이의 난수 1개 발생" + (Math.random()));
System.out.println("0~10 사이의 난수 1개 발생" + (int)(Math.random()*10));
System.out.println("0~100 사이의 난수 1개 발생" + (int)(Math.random()*100));
}
}
package Java05;
import java.util.Random;
// 난수로 알파벳 대문자 출력
// ASCII code('A' = 65, 'Z' = 90)와 일반 A~Z 까지를 (('Z'-'A')+1)+'A';
public class Test09 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
/* int random = rand.nextInt(8)+2;
for (int i=1; i<=9; i++) {
System.out.println(random + "*" + i + "=" + (random*i)); */
int random1 = rand.nextInt((90 - 65) + 1) + 65;
System.out.println("문자1 : " + (char)random1); //문자로 추출
int random2 = rand.nextInt(('Z'-'A') + 1) + 'A';
System.out.println("문자2 : " + (char)random2); //문자로 추출
}
}
'일단 해보는 코딩 > Java' 카테고리의 다른 글
[Java] 함수(메써드) 호출 방식 (0) | 2022.07.26 |
---|---|
[Java] Break/Continue 문 (0) | 2022.07.25 |
[Java] 배열(Array) (0) | 2022.07.21 |
[Java] Switch ~ case 문, For문 (0) | 2022.07.21 |
[Java] If문, else if~, (0) | 2022.07.21 |