函數permutation用于產生從0到n-1的無重復隨機數,并將結果保存到數組z_array中。程序中使用buffer作為已使用隨機數的記錄數組,假定下一次產生一個隨機數的(產生隨機數的范圍在不斷縮小:rand()%(n-i))為z,遍歷buffer,統計不大于該隨機數且已使用過的隨機數的個數,記為k,將z+k添加進z_array中,作為產生的下一個隨機數,如此重復。這樣便生成了從0到n-1的無重復的隨機數。
void permutation(int n, int *z_array)
{
int i, j, k, z;
int buffer[N];
/* 初始化數組 */
for (i=0; i
更多信息請查看IT技術專欄