Java에서 반복되지 않는 무작위 숫자를 생성하는 방법:
최소값과 최대값을 기준으로 n개의 반복되지 않는 난수를 생성합니다. (참고: 범위 [최소,최대], n <= (최대 - 최소 +1))
Idea:
0), 최소에서 최대까지 가능성을 설정하세요. 나타나는 모든 숫자는 후보 목록
1)에 포함되며, 인덱스 인덱스(0 <= index <= (list.size()-1))를 생성합니다. # 🎜🎜#2), index, list.get(index)에 따라 목록에서 숫자를 가져와서 이 요소를 제거합니다.
코드는 다음과 같습니다:
import java.util.ArrayList; import java.util.List; import java.util.Random; public class MyRandom { /** * 根据min和max随机生成一个范围在[min,max]的随机数,包括min和max * @param min * @param max * @return int */ public int getRandom(int min, int max){ Random random = new Random(); return random.nextInt( max - min + 1 ) + min; } /** * 根据min和max随机生成count个不重复的随机数组 * @param min * @param max * @param count * @return int[] */ public int[] getRandoms(int min, int max, int count){ int[] randoms = new int[count]; List<Integer> listRandom = new ArrayList<Integer>(); if( count > ( max - min + 1 )){ return null; } // 将所有的可能出现的数字放进候选list for(int i = min; i <= max; i++){ listRandom.add(i); } // 从候选list中取出放入数组,已经被选中的就从这个list中移除 for(int i = 0; i < count; i++){ int index = getRandom(0, listRandom.size()-1); randoms[i] = listRandom.get(index); listRandom.remove(index); } return randoms; } }
java기본 튜토리얼
을 따르세요.위 내용은 Java에서 임의의 고유 숫자를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!