[JAVA] Math.Random() _ 랜덤으로 숫자 얻기
0.0 <= Math.Random() < 1.0
- Math.random() 함수는 double형으로 0.0 이상 1.0 미만 사이의 값을 반환하는 함수이다.
- 난수를 만들고 싶을때 자주 이용되는 함수이다.
따라서 1과 10 사이의 랜덤한 정수를 얻고 싶다면,
(int) (Math.Random() *10) + 1 로 구하면 된다.
✨기본형이 double형이기 때문에 꼭 정수값을 랜덤으로 얻으려면 int형으로 형변환을 해주어야 한다.
✨1부터의 랜덤 값을 뽑고 싶다면? 랜덤 함수는 0부터 출력이 되기 때문에 +1을 꼭!!!! 해주어야 한다.
이는 다음과 같은 과정을 거친다.
1) 발생시키는 수가 총 10개 이므로 10을 곱함
0.0 * 10 <= Math.random() *10 < 1.0 * 10
=> 0.0 <= Math.random() * 10 < 10.0
2) 정수를 뽑아내야 하므로 int로 변환
0부터 9까지
(int) 0.0 <= (int) (Math.random*10) < (int) 10.0
=> 0 <= Math.random() * 10 < 10
1부터 10까지
0 + 1 <= (int)(Math.random()*10) + 1 < 10 + 1
<범위 내의 랜덤 문자 얻기>
문자 역시도 활용이 가능하다.
영문 대문자 26개('A'~'Z') 의 코드 값은 65~90이다.
'A'의 코드값은 65!!!!!!
(char) Math.random()*26 + 65 로 구하면 된다.
1. 발생시키는 수(=알파벳의 갯수)가 총 26개 이므로 26을 곱함
0.0*26 <= Math.random() *26 < 1.0 *26
2. (대문자 'A'가) 65부터 시작하므로 65를 더한다. 65는 'A'에 해당하므로 이를 더해도 상관없다.
0.0 + 65 <=Math.random() *26 + 65 < 26.0 +. 65
-> 65 <=Math.random() *26 + 65 < 91
3. char로 Casting(형변환)
(char)65.0 <=(char) Math.random() *26 +65 < (char) 91
-> 'A' <= (char) Math.random() *26 +65 < '['
=>A~Z까지의 난수 출력!!!!!
* '[' 는 'Z' 보다 코드값이 1이 더 큰 문자다!
https://defacto-standard.tistory.com/8
[Java] Math.random() 랜덤으로 숫자, 문자 얻기
0.0 <= Math.random() < 1.0 범위의 double 값을 리턴한다. <범위 내의 랜덤 숫자 얻기> 따라서 1과 10 사이의 랜덤한 정수를 구하고 싶다면 (int) (Math.random() * 10) +1 로 구하면 된다. 이는 다음과 같..
defacto-standard.tistory.com
위 블로그 글을 참고해서 공부용으로 포스팅 하였습니다.
💡 Math.random() 을 사용해서 원하는 값을 구할때 생각해야 할 점!
1) 몇개의 문자/숫자 를 얻어낼 것인지
2-1) 숫자일 경우 정수를 구하고 싶다면, 10을 곱해주기!
2-2) 문자일 경우 아스키코드값을 활용해서 구하기!!!
[ 영문 대문자는 총 26개 이며, 아스키 코드값은 65~90개다 ]