주제에 대해 많은 내용을 읽었지 만 여전히 그것에 대해 불안감이 있습니다. 제발 도와주세요! 내가되지 않은 패턴이나 기능에 따라 제대로 덱을 셔플하고 싶습니다 지금자바 카드를 섞으십시오.
int[] deck = new int[52];
for (int i = 0; i < deck.length; i++) {deck[i] = i;}
:
나는 52 개의 카드를 만들 수 있습니다. 나는 인 Math.random() 내 알고리즘 방법을 사용하기 위하여려고하고있다
는 :
for (int i = 0; i < deck.length; i++) {
int j = (int)(Math.random() * deck.length); // Get a random index out of 52
int temp = deck[i]; // Swap the cards
deck[i] = deck[j];
deck[j] = temp;
}
내가 여기 데 문제 그러나 가끔 중복을 얻을 수 있다는 것입니다; 결과적으로 일부 카드/값이 누락되었습니다.
나는 이미 사용 된 색인/값을 폐기하지 않을 것이 거의 확실합니다. 이는 위에 언급 한 문제의 핵심입니다. 그런데 어떻게해야합니까?
제안 사항? 아마, 내 생각의 똑같은 기차를 따라 가야 겠지. 무리 감사!
중복? j의 중복 값? 나 그리고 j? 어떤? –
무작위로 생성 및/또는 이미 할당 한 사본 중복 –
중복 결과를 보여주는 예를 보여줄 수 있습니까? 중복을 생성하는 코드에는 실수가없는 것 같습니다. 어쩌면 중복을 테스트하는 방식이 잘못되었을 수도 있습니다. –