C 如何在for循环中使用random_shuffle来实现不同的洗牌数组?

C 如何在for循环中使用random_shuffle来实现不同的洗牌数组?,c,random,C,Random,我想要10种不同的洗牌形式的数组…但是随机洗牌会产生10次相同的序列。。。 我的代码是 for(k=0;k<10;k++) { for (l=0; l<SIZE;l++) a[l]=l+1; srand(time(0)); random_shuffle(a,a+SIZE); //getting the shuffled sequence for(;i<10;i++) { for(j=0;j<5;j++

我想要10种不同的洗牌形式的数组…但是随机洗牌会产生10次相同的序列。。。 我的代码是

for(k=0;k<10;k++) {
    for (l=0; l<SIZE;l++)
        a[l]=l+1;

    srand(time(0));
    random_shuffle(a,a+SIZE);  //getting the  shuffled sequence

    for(;i<10;i++) {
        for(j=0;j<5;j++) {
            rcusseq[i][j]=a[m++]; //storing the sequence in a 2d array
            printf("%d\t",rcusseq[i][j]);
        }
        m=0;
        printf("\n");
    }
}

按任意键继续

您每次都在重新初始化随机数生成器,因为您的代码足够快,可以在1秒内运行,所以每次都会得到相同的种子

移动
srand(时间(0))循环外


在程序中只调用srand()一次,例如在main()的开头。

您每次都在重新初始化随机数生成器,因为您的代码足够快,可以在1秒内运行,所以每次都会得到相同的种子

移动
srand(时间(0))循环外


在程序中只调用一次srand(),例如在main()的开头。

在之前使用
srand
,所以你真正的问题是:我如何实际生成随机数?你不需要或不想在循环中调用
srand
,或者在程序中调用多次。在之前使用
srand
,看,你真正的问题是:我实际上如何生成随机数?你不需要或不想在循环中使用
srand
,或者在程序中不止一次。谢谢……我发现了我的错误,这是一个愚蠢的逻辑错误。最后生成的序列存储在2d数组的每个索引中,这是我的错误。在外部for循环中调用randomsuffle为(;我感谢你……我发现了我的错误这是一个愚蠢的逻辑错误。最后生成的序列存储在2d数组的每个索引中,这是我的错误。在外部for循环中调用random shuffle可以得到正确的答案(;i
    5       4       2       1       3
    5       4       2       1       3
    5       4       2       1       3
    5       4       2       1       3
    5       4       2       1       3
    5       4       2       1       3
    5       4       2       1       3
    5       4       2       1       3
    5       4       2       1       3
    5       4       2       1       3