반응형
이것은 꽤 간단한 Java입니다 (아마 모든 프로그래밍에 적용 할 수 있지만) 질문 :
math.random ()
은 0과 하나 사이의 숫자를 반환합니다.
0과 백 사이의 정수를 반환하려면 다음을 수행합니다.
(int) Math.floor(Math.random() * 101)
1시에서 백 사이, 나는 할 것입니다 :
(int) Math.ceil(Math.random() * 100)
그러나 내가 3 세에서 5 사이에 숫자를 얻고 싶으면 어떨까요?그것은 다음과 같을 것입니다.
(int) Math.random() * 5 + 3
java.lang.util.random
에서 nextint ()
에 대해 알고 있습니다.그러나 math.random ()
로이 작업을 수행하는 방법을 배우고 싶습니다.
해결 방법
int randomWithRange(int min, int max)
{
int range = (max - min) + 1;
return (int)(Math.random() * range) + min;
}
randomwithrange (2, 5) 코드> 10 번 출력 :
5
2
3
3
2
4
4
4
5
4
경계는 포괄적 인 것입니다. 즉 [2,5] 및 min
는 위의 예에서 <코드> 최대 보다 작아야합니다.
편집 : 누군가가 어리석은 및 max
를 시도하고 바보로 되돌아 가고 를 바라 보는 경우, 다음 코드를 변경할 수 있습니다.
int randomWithRange(int min, int max)
{
int range = Math.abs(max - min) + 1;
return (int)(Math.random() * range) + (min <= max ? min : max);
}
edit2 : double
s에 대한 질문에 대한 질문은 단지 :
double randomWithRange(double min, double max)
{
double range = (max - min);
return (Math.random() * range) + min;
}
그리고 다시 바보를 원한다면 그것은 단지 다음과 같습니다.
double randomWithRange(double min, double max)
{
double range = Math.abs(max - min);
return (Math.random() * range) + (min <= max ? min : max);
}
참조 페이지 https://stackoverflow.com/questions/7961788
반응형
'자바' 카테고리의 다른 글
STRING에서 Java에서 문자열로 변환 / 구문 분석하는 방법은 무엇입니까? (0) | 2021.04.08 |
---|---|
공간 별 문자열을 분할하는 방법 (0) | 2021.04.08 |
Java '는 각'루프 작업에 대해 어떻게 작동합니까? (0) | 2021.04.08 |
Java에서 새 목록을 만드는 방법 (0) | 2021.04.08 |
바이트에서 바이트 [] in java. (0) | 2021.04.08 |
댓글