JAVA

210806_random

요옫 2021. 8. 6. 11:40

random

//java.lang.math 클래스는 수학계산에 사용하는 메소드를 제공

//math클래스가 제공하는 메소드는 모두 정적메소드이므로 math클래스로 바로 사용 가능

//즉 새로 생성할 필요없이 바로 사용할 수 있다  ex)math.abs(-5)==>5

//Math.random()함수는 0.0이상에서 1.0미만의 double형 실수값을 반환

 

//                      코드                                  리턴값

//절대값: int Math.abs(-10)                        10          /int형으로 반환,음수 양수 다 가능

//올림값: double v=Math.ceil(5.2)             6.0         /double형으로 반환

//최대값: int a=Math.max(2,3)                    3

//랜덤값: double b=Math.random()       0.0<=b<1.0    /double형으로 반환

//반올림값: long b=Math.round(5.3)          5

 

//0부터가 아닌 1부터 시작하게 되면 뒤에 +1을 붙임

 

System.out.println("10개의 난수 발생");

for(int i=1;i<=10;i++)

{

double n=Math.random();

System.out.println(n);

}  //난수이기에 1.0은 안 넘으며 실행할 때마다 숫자는 계속 바뀜

 

 

System.out.println("---------------------------");

 

System.out.println("0~9사이의 난수 발생");

for(int i=1;i<=10;i++)

{

int n=(int)(Math.random()*10);  //형변환

System.out.println(n);

}

 

System.out.println("---------------------------");

 

System.out.println("0~99사이의 난수 발생");

for(int i=1;i<=100;i++)

{

int n=(int)(Math.random()*100);

System.out.println(n);

}

 

System.out.println("---------------------------");

 

System.out.println("1~10사이의 난수 발생");

for(int i=1;i<=10;i++)

{

int n=(int)(Math.random()*10)+1;

System.out.println(n);

}

 

System.out.println("---------------------------");

 

System.out.println("1~100사이의 난수 발생");

for(int i=1;i<=100;i++)

{

int n=(int)(Math.random()*100)+1;

System.out.println(n);

}

 

System.out.println("---------------------------");

 

System.out.println("1~10사이의 난수 발생");

for(int i=1;i<=10;i++)

{

int n=(int)(Math.random()*10)+1;

System.out.println(n);

}

 

System.out.println("---------------------------");

 

System.out.println("1~45사이의 난수 발생");

for(int i=1;i<=45;i++)

{

int n=(int)(Math.random()*45)+1;

System.out.println(n);

}

 

System.out.println("---------------------------");

 

System.out.println("65~90사이의 난수 발생");

for(int i=65;i<=90;i++)

{

int n=(int)(Math.random()*26)+65;  //*뒤에 25가 아닌 26

//int n=(int)(Math.random()*m)+n;

//n~(m+n-1)

System.out.println(n);

}

 

//결과

10개의 난수 발생

0.45723374826049534

0.7748638270647505

0.3369046007623887

0.2714731756648757

0.4286649290235327

0.19690198017694494

0.053326111928887254

0.051473709405379875

0.30756074954268464

0.4514126243311123

---------------------------

0~9사이의 난수 발생

8

6

4

7

9

8

7

7

8

4

---------------------------

0~99사이의 난수 발생

55

50

72

1

21

59

9

75

81

84

75

40

89

94

17

3

56

43

6

17

3

47

90

67

86

72

58

6

47

10

14

68

36

84

89

79

90

64

36

19

44

26

57

78

17

55

66

97

60

49

74

93

6

24

73

8

33

32

48

39

70

24

82

40

3

96

35

45

27

16

78

72

44

18

10

23

82

26

65

60

90

52

20

42

37

13

32

15

34

90

2

53

54

64

43

42

71

30

55

40

---------------------------

1~10사이의 난수 발생

4

4

4

3

5

5

2

8

3

9

---------------------------

1~100사이의 난수 발생

78

24

95

31

47

22

68

99

8

19

40

62

20

86

100

58

13

4

24

76

35

54

69

30

17

51

16

12

59

39

86

9

12

85

48

35

51

99

71

56

43

98

25

9

78

58

30

1

33

92

39

82

20

3

30

58

53

1

76

66

97

39

58

71

93

17

100

30

66

40

65

13

80

44

44

42

76

25

40

86

65

43

55

15

68

33

64

91

57

38

57

60

69

98

39

86

73

2

43

50

---------------------------

1~10사이의 난수 발생

2

3

9

4

7

6

1

3

10

4

---------------------------

1~45사이의 난수 발생

38

17

5

2

20

12

7

18

15

11

29

29

40

4

43

45

15

29

29

43

4

40

43

36

44

28

43

18

25

14

43

21

31

42

24

1

12

24

32

10

8

1

39

19

7

---------------------------

65~90사이의 난수 발생

72

83

66

81

87

86

90

87

66

87

76

87

65

79

84

76

89

70

66

89

87

69

77

89

75

76

 

----------------------

 

(예제)

//몇 번만에 정답을 맞출지 range를 모르기에 while(true) 사용

//난수가 77이라 할 때

//1이라고 하면 55보다 큽니다

//88이라 하면 80보다 작습니다

//77이라 하면 정답입니다

//숫자맞추기 게임 종료

 

Scanner sc=new Scanner(System.in);

int rnd=(int)(Math.random()*100)+1;  //1~100까지의 난수식

int su=0;  //입력할 값(정답이라고 추측되는 수

int cnt=0;

 

 

while(true)

{

cnt++;

System.out.print(cnt+" : ");

su=sc.nextInt();

 

if(su>rnd)

System.out.println(su+"보다 작습니다");

else if(su<rnd)

System.out.println(su+"보다 큽니다");

else

{

System.out.println("맞아요 정답은 "+rnd+"입니다");

break;

}

 

}

System.out.println("게임 종료");

'JAVA' 카테고리의 다른 글

210806_startswith,equals  (0) 2021.08.06
210806_예제/for,while  (0) 2021.08.06
210805_중첩문,다중for문  (0) 2021.08.05
210805_while&char,dowhile,while(true)  (0) 2021.08.05
210805_합계,break,continue  (0) 2021.08.05