C语言生成随机数问题,C语言如何生成不重复的随机数

发布于 科学 2024-08-16
2个回答
  1. 匿名用户2024-02-01

    LS 的 ** 是错误的。

    请参阅下面的**。

    #include

    #include

    using namespace std;

    void rand( int *array, int num);

    功能:用数组生成 num 个随机数。

    int main()

    srand( time( 0 )

    int a[10];

    rand( a, 10 );

    cout<< "---" cout<< a[i] return 0;

    void rand( int *array, int num)

    int i = 0;

    array[i] = rand() 100;生产第一个。

    i = 1;准备生产第二个。

    for( ;i < num ;

    array[i] = rand()%100;

    for( int j=0;j 实现最后一个,并将其与前一个进行比较。

    if( array[j] != array[i] )

    if( j == (i-1) )

    直到最后一个,下一个才准备好生产。

    i++;break;

    否则,如果有相同的,它立即退出循环并重新生成随机数,并且不添加 i。

    break;

    你上面写的程序很不灵活,如果你想生产5个,你的**是不是要改变很多? 让我们使用我为您编写的函数。

    最后要强调的一点是:

    void rand( int *array, int num);

    将参数传递给 num 时,它不能大于 array[i] = rand()%100; 在100中

    否则,这是一个无休止的循环,为什么? 你自己想想,不要我什么都说,不明白就不要给我发信息,我会告诉你的。 哈哈,测试一下自己的智力。

  2. 匿名用户2024-01-31

    用一个数字组装一个随机数,一个数组表示已经记录的随机数;

    例如,随机 0-8 生成一个随机的 8 位数组,数组中没有重复的项目;

    例如 intarray[8];

    intarrayindex[8]=;

    intk=0;

    srand(100);

    while(k<8){

    intq=rand()%8+1;

    if(arrayindex[q-1]==1){continue;

    array[k]=q;

    arrayindex[q-1]=1;

    k++;扩展材料c 语言随机输出 1 20 个不重复的随机数。

    #include

    #include

    #include

    voidmain()

    inta[20];

    inti,j;

    srand((int)time(0));

    a[0]=rand()%20+1;

    for(i=1;i<20;i++)

    a[i]=rand()%20+1;

    for(j=0;jif(a[i]==a[j])i--;for(i=0;i<20;i++)printf("%3dn",a[i]);

相关回答
14个回答2024-08-16

#include ""

#include "" >>>More

5个回答2024-08-16

这里使用了 rand() 函数和 srand() 函数,C C++ 中没有 random(int number) 函数。 >>>More

5个回答2024-08-16

SRAND生成一个随机种子,该种子被传递到系统内部的随机数生成器。 >>>More

8个回答2024-08-16

为最初给定的种子生成相同的序列,因为每次调用 rnd 函数都使用序列中的前一个数字作为下一个数字的种子。 >>>More

10个回答2024-08-16

rnd*(上限,下限+1)+下限,如果要求生成的随机数包含上限(本题中为100),则为正确。 >>>More