2013-01-31 8 views
-1

Java에서 주어진 숫자 목록에서 임의로 숫자를 선택할 수 있습니까?임의의 숫자 선택

나는 단지이 5 개 번호가 : 1000, 5000

, 4000 2000, 3000, 지금은 무작위로 숫자 세트에서 어떤 하나 개의 번호를 선택해야합니다.

내 코드는이

int ar[] = new int[4]; 
ar[0] = 1000; 
ar[1] = 2000; 
ar[2] = 3000; 
ar[4] = 4000; 

int randomArrayIndex = num.nextInt(ar.length); 
+2

'num'이란 무엇입니까? 그리고 코드의 결과는 무엇입니까 (완전히 추측하지는 않습니다)? 시도한 전체 코드를 게시하십시오. –

+2

'num'이'Random' 클래스의 인스턴스라는 점을 감안할 때, 당신은 꽤 올바르게하고 있습니다. 이 코드로 당신을 위해 일하지 않는 것은 무엇입니까? –

+2

@ AudriusMeškauskas .. OP를위한 것이 아니라 당신을위한 것입니다. –

답변

6
int randomArrayIndex = new Random().nextInt(ar.length); 
int number = ar[randomArrayIndex]; 
+0

동일한 번호를 두 번 이상 생성 할 수 있습니다. –

+1

@AchintyaJha, 그래서? 그런 요구 사항은 없습니다. –

1

public static int myRandom(int low, int high) { 
    return (int) (Math.random() * (high - low) + low); 
} 

을 시도하고 0

+0

+1 또는 1이 낮을 수 있고 5가 높을 수도 있고 1000이 많을 수도 있습니다. –

1

는 반복하지 않으려면 4. 낮은 높게 설정 시도 원래 배열의 번호 :

Integer [] array = {1000,2000,3000,4000}; 
Collections.shuffle(Arrays.asList(array)); 

주어진 배열에서 하나의 난수가 필요한 경우.

int[] array = {1000,2000,3000,4000}; 

int randomNumber = array[(int)(Math.random()*array.length)]; 
+1

많이 개선 되었습니까? :) – Destrictor

+0

@Destrictor 좋은 접근 방법이 아닌가? –

+1

하나의 숫자 만 원한다면 조금 낭비가되는 것 같습니다. :). 그가 임의의 순서로 모든 것을 필요로한다면 이것은 아주 좋은 해결책입니다. – Destrictor