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