자바 개발자 일기 17일차 (Random)

Shy·2024년 1월 22일

아이티윌

목록 보기
17/22
import java.util.Random;

public class Random_Exam1 {

    public static void main(String[] args) {
        // Random 클래스: 난수를 생성하는 클래스
        // 여기서는 기본 생성자를 사용하여 Random 인스턴스를 생성
        Random ran = new Random();

        // nextBoolean() 메서드: 논리형 난수(true 또는 false)를 생성
        System.out.println("----- nextBoolean() -----");
        System.out.println("ran.nextBoolean() : " + ran.nextBoolean());
        System.out.println("ran.nextBoolean() : " + ran.nextBoolean());
        System.out.println("ran.nextBoolean() : " + ran.nextBoolean());

        // nextBoolean()을 사용한 난수를 10회 생성하는 반복문
        for (int i = 0; i < 10; i++) {
            System.out.print(ran.nextBoolean() + " ");
        }
        System.out.println();

        // nextInt() 메서드: 정수형 난수(int 타입)를 생성
        System.out.println("----- nextInt() -----");
        System.out.println("ran.nextInt() : " + ran.nextInt());
        System.out.println("ran.nextInt() : " + ran.nextInt());
        System.out.println("ran.nextInt() : " + ran.nextInt());

        // nextInt()를 사용한 난수를 10회 생성하는 반복문
        for (int i = 0; i < 10; i++) {
            System.out.print(ran.nextInt() + " ");
        }
        System.out.println();

        // nextFloat() 메서드: 실수형 난수(float 타입)를 생성
        System.out.println("----- nextFloat() -----");
        System.out.println("ran.nextFloat() : " + ran.nextFloat());
        System.out.println("ran.nextFloat() : " + ran.nextFloat());
        System.out.println("ran.nextFloat() : " + ran.nextFloat());

        // nextDouble() 메서드: 실수형 난수(double 타입)를 생성
        System.out.println("----- nextDouble() -----");
        System.out.println("ran.nextDouble() : " + ran.nextDouble());
        System.out.println("ran.nextDouble() : " + ran.nextDouble());
        System.out.println("ran.nextDouble() : " + ran.nextDouble());
    }
}
----- nextBoolean() -----
ran.nextBoolean() : false
ran.nextBoolean() : false
ran.nextBoolean() : false
true true true true false false true false true false 
----- nextInt() -----
ran.nextInt() : -1433327893
ran.nextInt() : 2030366830
ran.nextInt() : -881271525
-1829995253 111860374 1461815382 -44414751 1608106485 1785692738 -1728836249 -1824059873 -1508787739 -552695822 
----- nextFloat() -----
ran.nextFloat() : 0.0033092499
ran.nextFloat() : 0.44508678
ran.nextFloat() : 0.28109717
----- nextDouble() -----
ran.nextDouble() : 0.9773015952794555
ran.nextDouble() : 0.4255963748535355
ran.nextDouble() : 0.21500487370691723
import java.util.Random;

public class Random_Exam2 {

    public static void main(String[] args) {
        // Random 클래스의 인스턴스 생성
        Random ran = new Random();
        
        // nextInt() 메서드 사용 예시
        // int 타입의 임의의 난수를 생성하고 출력
        System.out.println("--- nextInt() -----");
        for (int i = 0; i < 10; i++) {
            int ranInt = ran.nextInt(); // 임의의 정수 생성
            System.out.print(ranInt + " ");
        }
        System.out.println();
        
        // nextInt(5) 메서드 사용 예시
        // 0부터 4까지의 정수 중 임의의 난수를 생성하고 출력
        System.out.println("--- nextInt(5) -----");
        System.out.print("nextInt(5) : ");
        for (int i = 0; i < 30; i++) {
            int ranInt = ran.nextInt(5); // 0~4 범위의 난수 생성
            System.out.print(ranInt + " ");
        }
        System.out.println();
        
        // nextDouble() 메서드와 Math.random() 메서드 비교
        // 두 메서드 모두 0.0과 1.0 사이의 double 타입 난수를 생성
        System.out.println("==============");
        for (int i = 0; i < 10; i++) {
            System.out.println(ran.nextDouble() + " - Random nextDouble() ");
            System.out.println(Math.random() + " - Math.random() ");
        }
    }
}
--- nextInt() -----
2017389784 -1438204244 -26439876 1341189004 -278353563 1652006140 1037509559 -1386233958 643032099 413173015 
--- nextInt(5) -----
nextInt(5) : 0 0 3 1 4 1 4 3 0 0 2 0 4 1 1 2 0 0 2 0 0 3 1 2 4 2 2 3 4 2 
==============
0.5015811658423288 - Random nextDouble() 
0.8238621023139995 - Math.random() 
0.6504098259596849 - Random nextDouble() 
0.513127484152676 - Math.random() 
0.5293750966022308 - Random nextDouble() 
0.7265353539913258 - Math.random() 
0.06115789723312137 - Random nextDouble() 
0.28368498273721665 - Math.random() 
0.8698037222598113 - Random nextDouble() 
0.24140785966819223 - Math.random() 
0.5776838519898025 - Random nextDouble() 
0.3650539704240241 - Math.random() 
0.06593064793068948 - Random nextDouble() 
0.7047149671682459 - Math.random() 
0.6539285582899048 - Random nextDouble() 
0.4237135583652729 - Math.random() 
0.7423624698742786 - Random nextDouble() 
0.16459243181518513 - Math.random() 
0.40157032557995886 - Random nextDouble() 
0.5940060975429428 - Math.random() 
profile
신입사원...

0개의 댓글