1. 程式人生 > >如何在一個數組中取不同的6個隨機數

如何在一個數組中取不同的6個隨機數

原理:從陣列中 ,隨機取了一個數 ,我們把這個數與這個陣列的最後一個數進行位置交換,並把這個數存到另外一個數組中,我們在進行第二次隨機,從這個陣列的第一個位置隨機到倒數第二個位置,隨機取一個數,我們把我們隨機到的這個數與這個陣列的最倒數第二個數進行位置交換,並把這個數存到先前定義的新的陣列中,依次類推,直到交換到倒數第六個數值。

程式碼:

import java.util.Random;
public class testfor1{
public static void main(String[] args){
int[] a =new int [30];
for(int  i=0;i<a.length;i++){
a[i]=i+1;
}

Random r =new Random();

int[]b =new int[6];
int temp = 0;
int index=0;

for(int i=0;i<6;i++){
index =r.nextInt(a.length-i);  //取a陣列的下標數 0---29
b[i]=a[index];                          //把取到的數存於新建的陣列b中
temp =a[index];                     //6次迴圈取到的隨機數按序交換到陣列最後面
a[index]=a[a.length-1-i];
a[a.length-1-i]=temp;
}
for(int i=0;i<6;i++){
System.out.print(b[i]+" ");
}

}
}