2015-01-03 3 views
-2

최대 수와 최소 수를 입력 할 수있는 Java에서 메서드를 만들고 싶습니다. 그러면 더 큰 수의 더 높은 수를 얻을 수 있습니다. 작은 것보다 번호. 어떻게하면 좋을까요?범위가 더 큰 확률을 가진 난수 생성기

+1

'상위'로 정확히 무엇을 의미합니까? 당신이 얼마나 더 원하는대로 할 수 있습니까? –

+1

이 질문은 화제가 아닌 것처럼 보입니다. 왜냐하면 그것은 '코드 내놔'에 관한 것입니다. – bcsb1001

+0

나는 10 % 이상의 응답을 얻었 으면 좋겠다. – personMMIV

답변

1

당신이 의미하는 바에 따라 많은 방법이 있습니다. 함수를 사용하여 배포를 왜곡 할 수 있습니다.

int num = (int) (func(Math.random()) * (max - min)) + min; 

귀하의 funcn < 1가 높은 숫자를 선호하는 Math.sqrt 또는 Math.pow(x, n) 수 있습니다.

나는 10 % 이상의 답변을 얻길 바랍니다.

이것이 실제로 필요한 경우 실제로는 두 가지 배포본이 있습니다.

private static final Random rand = new Random(); 
public static int randBetween(int min, int max) { 
     return rand.nextInt(max - min + 1) + min; 
} 


int next = rand.nextInt(100) < 10 ? // a 10% chance 
      randBetween(10, max) : // random of at least 10 
      randBetween(min, max); // otherwise any number. 
+0

도움 주셔서 감사합니다. 대단히 감사합니다. – personMMIV

+0

@personMMIV 귀하의 의견을 기반으로 업데이트되었습니다. –

+0

@personMMIV 자세히 알아 보려면 http://en.wikipedia.org/wiki/Probability_distribution 및 http://en.wikipedia.org/wiki/Pseudo-random_number_sampling을 참조하십시오. –