728x90
    
    
  반응형
    
    
    
  SecureRandom random = new SecureRandom ();
//랜던 문자 길이
int numLength = 16;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
//randomStr += ran.nextInt(10);
randomStr += random.nextInt(10);
System.out.println("randomStr "+ i + " :: " + randomStr);
}
아래 출처 : https://jonghwasu.wordpress.com/2013/02/15/%EA%B0%95%EB%A0%A5%ED%95%9C-%EB%82%9C%EC%88%98%EB%A5%BC-%EC%83%9D%EC%84%B1-%ED%95%9C%EB%8B%A4/
- 강력한 난수를 생성한다.
- 의사 난수 생성기는 좋은 통계적 성질을 가진 일련의 수 배열을 생성하는 결정성 수학 알고리즘을 사용
 - 그러나 숫자 배열이 진정한 난수성을 갖지는 않는다.
 - 의사 난수 생성기는 일반적으로 초깃값(seed value)으로 시작한다.
 - 알고리즘은 이 초깃값을 사용해 난수를 생성하고 새로운 초깃 값을 만들고, 다시 이 초깃 값을 사용해 그 다음 난 수 값을 만든다.
 
 
- 자바 API는 java.util.Random 클래스로 의사 난수 생성기를 구현한다.
- 의사 난수 생성기는 이식 할 수 있고 반복될 수 있다.
 - 따라서 동일한 초깃값을 사용해 생성한 두개의 java.util.Random 객체는 모든 자바 구현에서 동일한 숫자 배열을 생성하게 된다.
 - 어플리케이션을 초기화 하거나 시스템이 재 시동된 후에 초깃값이 재 사용되곤 한다.
 - 또는 시스템 클럭에서 가져온 현재 시간에서 유도하여 초깃 값으로 사용하기도 한다.
 
 - 부적합 코드예
- 이 클래스는 모든 주어진 초깃 값에 대해 동일한 숫자 배열을 생성한다. 따라서 앞으로 나올 숫자를 예상 할 수 있다.
 
123456Random rand1= new Random(123L);/* [0,20] 범위에 있는 또다른 정수현 난수를 생성한다. */int n = rand1.nextInt(21);System.out.println("Random1 =================================================");System.out.println(n); - 적합 코드 예
 - 적합 코드 예
 
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11  | 
/* java.security.SecureRandom 클래스를 사용해 고품질의 난수를 만들어낸다. */SecureRandom rand3 = null;try {    rand3 = SecureRandom.getInstance("SHA1PRNG");} catch (NoSuchAlgorithmException e) {    e.printStackTrace();}System.out.println("SecureRandom============================================");n = rand3.nextInt(21);System.out.println(n); | 
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9  | 
/* Random의 기본 생성자를 이용하면 생성자를 호출 할 때 마다 다른 값을 초기 값으로 가져올 수 있다. */Random rand2 = new Random();System.out.println("Random2 =================================================");for(int i = 0; i < 20; i++) {    /* 난수 생성기의 초깃값을 다시 설정 */    rand2 = new Random();    n = rand1.nextInt(21);    System.out.println(n);} | 
728x90
    
    
  반응형
    
    
    
  'JAVA > 함수' 카테고리의 다른 글
| Colllection Framework - Map (0) | 2017.12.06 | 
|---|---|
| Collection Framework - Set (0) | 2017.12.06 | 
| Collection Framework - List (0) | 2017.12.06 | 
| Collection Framework - Collection Interface (0) | 2017.12.06 | 
| Java 5장 : 배열,2차원배열,3차원배열 (0) | 2016.04.29 | 
| [JAVA 함수] 자바 소수점 올림 / 버림 / 반올림 / 절대값 (0) | 2016.04.21 | 
| Java switch 문 완벽 사용법 (0) | 2016.04.01 | 
| [JAVA] String format 사용법 (0) | 2016.03.24 |