중복이없는 배열의 난수

음성

나는이 질문에 대한 답을 알고 있지만 그 해결책은 내가 진행하는 방식과 맞지 않으므로 더 간단한 해결책이 있는지 문의하고 있습니다.

나는 세트 인터페이스를 사용하고 있으며 6 개의 난수가 필요하며 세트 인터페이스에서 중복을 가질 수 없습니다.

이것이 제가 현재 가지고있는 것입니다. 제가하는 방식은 이상적이지 않고 종종 충돌을 일으 킵니다.

public void drawLotto(){ //The validation I have here I know isn't the most effective way and is-
        Random r = new Random();//resource comsuning but this was the only way I could think of doing it.
        int draw[] = new int[6];
        int min = 1;
        for(int i = 0; i < draw.length; i++){
            draw[i] = r.nextInt(lotteryMax-min) + min;
            lotteryDraw.add(draw[i]);
        }
        int size = lotteryDraw.size();
        if(size != 6){
            drawLotto();
        }
        for(int i = 0; i < draw.length; i++){
            System.out.println(draw[i] + " ,");
        }
        System.out.println();
    }
``
Thank you, any help is appreciated. 
Yoni

문제가있는 이유는 drawLotto ()를 재귀 적으로 호출하여 Random의 새 인스턴스를 생성하기 때문입니다. drawLotto ()가 올바른 목록을 만들 수없는 경우 6 개의 숫자를 모두 다시 시도해야합니다. 이로 인해 응용 프로그램이 많은 양의 메모리를 사용하여 충돌이 발생할 수 있습니다.

이를 수행 할 수있는 한 가지 방법은 6 개의 고유 한 숫자를 찾을 때까지 계속 반복하는 것입니다.

public void drawLotto(){
    Random r = new Random();
    Set<Integer> draw = new HashSet<>();
    int min = 1;
    int lotteryMax = 50;

    while(draw.size() < 6){
        draw.add(r.nextInt(lotteryMax-min) + min);
    }

    String lotteryDrawing = draw.stream().map(String::valueOf).collect(Collectors.joining(" ,"));

    System.out.println(lotteryDrawing);
}

lotteryMax가 필요한 숫자보다 높은지 확인해야하지만

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C ++ 중복없이 난수로 배열 채우기

분류에서Dev

if 배열의 난수

분류에서Dev

중복없이 임의의 정수 배열 만들기

분류에서Dev

배열에서 정수의 난수를 읽는 방법

분류에서Dev

중복없이 개체 배열의 항목 수 표시

분류에서Dev

R : 열의 값을 중복 된 난수로 바꾸는 방법

분류에서Dev

10에서 99 사이의 50 개의 난수를 생성하는 방법, 중복 없음.

분류에서Dev

난수 배열의 여러 값을 선택하는 방법

분류에서Dev

배열의 각 값에 난수를 추가하는 방법

분류에서Dev

난수를 사용하는 C #의 2D 배열

분류에서Dev

1의 배열에 난수를 곱하는 방법

분류에서Dev

길이 25의 배열에 난수 저장

분류에서Dev

Python의 배열에서 두 값 사이에 난수 생성

분류에서Dev

난수 배열 생성 및 중복 교체

분류에서Dev

중복 및 범위가없는 난수

분류에서Dev

PHP-중복없이 난수 생성

분류에서Dev

난수로 배열 배열을 만드는 es6 방법?

분류에서Dev

C의 난수로 배열을 채우는 프로그램 작성

분류에서Dev

MATLAB에서 루프없이 난수 배열 생성

분류에서Dev

난수 배열의 변수 문제

분류에서Dev

배열에 난수를 할당 할 수 없습니다.

분류에서Dev

배열이없는 구조의 수명

분류에서Dev

6551 개 이상의 난수를 생성 할 수없는 이유

분류에서Dev

중복 키 값없이 array.push () 함수로 배열을 복사하는 방법은 무엇입니까?

분류에서Dev

객체 배열 생성자의 난수

분류에서Dev

특정 배열 목록의 난수

분류에서Dev

난수를 배열에 넣고이 배열을 PHP에 표시하는 방법

분류에서Dev

ngRepeat는 중첩 배열을 반복 할 수 없습니다.

분류에서Dev

알 수없는 길이의 char 배열 작업 복사본 만들기

Related 관련 기사

뜨겁다태그

보관