[Java] 난수 범위 (Random, Math)
https://guafindel.tistory.com/147
자바(JAVA) 난수 범위 지정
자바 랜덤 난수를 뽑는 방법. 1. Math.random을 이용하는 방법 Math.random 메소드는 기본적으로 따로 임포트 하지 않아도 사용이 가능하다. java.lang 패키지 안의 클래스가 존재하기 때문. 개발도구(IDE)
guafindel.tistory.com
1. Math.random을 이용하는 방법
Math.random 함수에 특정 양수를 곱하면 양수에 -1을 한 값이 최대값으로 나온다.
Math.random()에 45를 곱하면 0~44 사이의 숫자 하나를 반환한다.
여기에 +1을 하면 1~45의 우리가 원하는 범위 조건이 나온다.
(Math.random() * 45 +1);
이를 원하는 변수 타입에 넣어서 담기만 하면 되는데,
여기서 잊지 말아야 할 것은. Math.random()은 double형 이라는 것.
우리가 원하는 것은 양수이니 형변환을 해줘야 한다.
int lNum = (int) (Math.random() * 45 + 1);
2. nextInt() 를 이용하는 방법.
java.util.Random
Random 클래스에서 그 중 하나의 메소드 nextInt()
nextInt()의 경우 int의 전체 범위 -21억~21억 중에서 수를 반환한다.
nextInt(num)의 경우에는 0 ~ (num-1) 사이의 특정 수를 반환한다.
1~45까지의 난수를 뽑고 싶다면.
nextInt(45) + 1 을 해주면 간단하게 뽑을 수 있다는 것.
사용방법이 더 간단하니 실제로도 더 많이 사용되는 것 같고, 이 외에도 다양한 메소드를 제공하니 Random클래스의 유용성이 더 높은것 같다.
nextInt를 이용해서 양수와 음수를 포함한 범위값을 지정할 수 있다.
nextInt(max - min + 1) + min
max값 ~ min값 난수 반환
nextInt(60 - (-45) + 1) + (-45) = 60 ~ -45 사이의 수 반환.