Java言語 乱数を重複しないように生成するプログラム

コード下記
public static List<Integer> random_shuffer(int num,int thresold){

Random rd = new Random();
List<Integer> result = new ArrayList<Integer>(thresold);
for(int i = 0 ;i < thresold ;i++)
result.add(i+1);
for(int i = thresold; i > 0;i–)
swap(result,i-1,rd.nextInt(thresold));

return result.subList(0, num);
}
public static List<Integer> random_2(int num , int thresold){
Random rd = new Random();
List<Integer> target = new ArrayList<Integer>(thresold);
for(int i = 0 ;i < thresold ;i++)
target.add(i+1);
List<Integer> result = new ArrayList<Integer>();

for(int i = 0 ; i < num ;i++){
int r = rd.nextInt(thresold);
result.add(target.get(r));
swap(target, r, thresold-1);
thresold–;
}

return result;

}

Development

Posted by arkgame