본문 바로가기
자바

math.random () 설명

by º기록 2021. 4. 8.
반응형

이것은 꽤 간단한 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

 

 

반응형

댓글