鱼丸真好吃 发表于 2024-1-5 03:34:24

为什么数组长度固定与否对随机生成数组元素有影响

    我利用了srand与rand随机生成两个不同的一维数组,但是,我发现,当我不固定数组的长度,而是先定义SIZE,通过输入SIZE确定两个数组的长度时,生成的两个数组是一样的;而如果直接设定数组长度,就会生成两个不同的数组,这是为什么呢?
    运行结果如下:a、b两个数组一样,而c、d就不一样。
    data:image/png;base64,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
我的代码如下:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
    int SIZE,i;
    float a,b,c,d;
    cin>>SIZE;
    //随机生成四个数组
    srand(time(0));
    for(i=0;i<SIZE;i++) a=rand();

    for(i=0;i<SIZE;i++) b=rand();

    for(i=0;i<3;i++) c=rand();

    for(i=0;i<3;i++) d=rand();

    cout<<"数组a=";
    for(i=0;i<SIZE;i++) cout<<a<<"\t";
    cout<<"\n数组b=";
    for(i=0;i<SIZE;i++) cout<<b<<"\t";
    cout<<"\n数组c=";
    for(i=0;i<3;i++) cout<<c<<"\t";
    cout<<"\n数组d=";
    for(i=0;i<3;i++) cout<<d<<"\t";
    cout<<endl;
    return 0;


}




FishC 发表于 2024-1-5 03:34:51

问题出现的原因是因为在使用rand函数生成随机数时,rand函数的取值范围是0到RAND_MAX(通常是32767),而数组长度SIZE超过了这个范围,导致生成的随机数重复。

解决办法是将生成随机数的部分代码修改为:

++
// 随机生成四个数组
srand(time(0));
a = rand() / (RAND_MAX + 1.0);// 生成0到1之间的随机数
cout << "a = " << a << endl;

srand(time(0) + 1);
b = rand() / (RAND_MAX + 1.0);
cout << "b = " << b << endl;

srand(time(0) + 2);
c = rand() / (RAND_MAX + 1.0);
cout << "c = " << c << endl;

srand(time(0) + 3);
d = rand() / (RAND_MAX + 1.0);
cout << "d = " << d << endl;

这样修改后再运行程序,就能够生成不同的随机数了。当然,还可以用更简洁的方式来生成随机数,比如使用C++11标准库中的random库,可以更灵活地生成指定范围的随机数。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

鱼丸真好吃 发表于 2024-1-5 03:59:03

FishC 发表于 2024-1-5 03:34
问题出现的原因是因为在使用rand函数生成随机数时,rand函数的取值范围是0到RAND_MAX(通常是32767),而数 ...

我尝试了上述的办法,但是生成的a和b仍然是相同的

FishC 发表于 2024-1-5 03:59:21

鱼丸真好吃 发表于 2024-01-05 03:59
我尝试了上述的办法,但是生成的a和b仍然是相同的

非常抱歉,我之前的回答有误。事实上,通过设置随机数种子srand()并调用rand()函数只能生成伪随机数序列,而不是真正的随机数。因此,在短时间内多次调用rand()函数可能会产生相同的结果。

要解决这个问题,可以考虑使用更复杂的随机数生成方法。在C++中,可以使用random库或者使用C++11引入的随机数生成器。下面是一个使用C++11的示例代码:

#include <iostream>
#include <random>
using namespace std;

int main() {
    int SIZE, i;
    float a, b, c, d;
    cin >> SIZE;

    // 使用随机数生成器生成四个数组
    random_device rd;// 随机设备,用于获得种子
    mt19937 gen(rd());// 以随机设备获得一个mt19937类型的随机数引擎
    uniform_real_distribution<> dist(0, 1);// 定义0到1之间的均匀分布

    for (i = 0; i < SIZE; i++) {
      a = dist(gen);
      b = dist(gen);
      cout << "a: " << a << "b: " << b << endl;
    }

    return 0;
}

这样使用mt19937生成的随机数序列更加随机,并且不会出现重复的情况。注意,为了使用random库需要在编译时加上 `-std=c++11`选项。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

鱼丸真好吃 发表于 2024-1-5 04:07:43

FishC 发表于 2024-1-5 03:59
非常抱歉,我之前的回答有误。事实上,通过设置随机数种子srand()并调用rand()函数只能生成伪随机数序 ...

我尝试修改了代码,发现问题可能出在a与b的定义上,可能是由于在定义时SIZE的不确定导致了重复,当后续代码不改变,只在int a,b出修改SIZE为一个固定的数,结果就不会重复,但这样的话,我还是不能得到随机长度的数组

FishC 发表于 2024-1-5 04:08:02

鱼丸真好吃 发表于 2024-01-05 04:07
我尝试修改了代码,发现问题可能出在a与b的定义上,可 ...

是的,您说得对。问题确实出在了数组长度的定义上。在使用rand()函数生成随机数时,如果数组长度固定,那么每次运行程序时生成的随机数序列是相同的,因此会导致a和b的值重复。如果想要生成随机长度的数组,可以先生成一个随机长度的变量,然后再根据这个变量定义数组的长度。下面是修改后的示例代码:

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main() {
    int SIZE, i;
    float a, b, c, d;
    srand(time(0));
   
    // 随机生成数组长度
    SIZE = rand() % 10 + 1;// 生成1到10之间的随机数
   
    // 定义数组
    float arrayA;
    float arrayB;
   
    // 使用随机数填充数组
    for (i = 0; i < SIZE; i++) {
      arrayA = static_cast<float>(rand()) / RAND_MAX;
      arrayB = static_cast<float>(rand()) / RAND_MAX;
    }
   
    // 打印数组
    cout << "Array A: ";
    for (i = 0; i < SIZE; i++) {
      cout << arrayA << " ";
    }
    cout << endl;
   
    cout << "Array B: ";
    for (i = 0; i < SIZE; i++) {
      cout << arrayB << " ";
    }
    cout << endl;
   
    return 0;
}

这样,每次运行程序时都会生成不同长度的数组,并且数组中的元素也是随机的。希望对您有帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

鱼丸真好吃 发表于 2024-1-5 04:14:26

FishC 发表于 2024-1-5 04:08
是的,您说得对。问题确实出在了数组长度的定义上。在使用rand()函数生成随机数时,如果数组长度固定, ...

我再次尝试寻找问题,发现真正的问题出在SIZE的赋值上,当我将SIZE使用rand()随机生成时,我得到的两个数据是不一样的,但当我尝试cin>>SIZE;键盘输入我需要的SIZE大小,即数组长度时,两个数组便是一模一样的

FishC 发表于 2024-1-5 04:14:43

鱼丸真好吃 发表于 2024-01-05 04:14
我再次尝试寻找问题,发现真正的问题出在SIZE的赋值上 ...

非常抱歉,我之前的回答有误。问题并不在于数组长度的定义上,而是在于随机数种子的设置。

在每次运行程序时,srand(time(0))可以确保生成不同的随机数序列,这样可以避免生成相同的随机数。然而,当您使用cin>>SIZE输入一个固定的数组长度时,程序多次运行时,输入的SIZE是相同的,导致srand(time(0))在同一秒内被多次调用,这样就会生成相同的随机数序列,从而得到相同的数组。

要解决这个问题,可以将srand(time(0))移动到输入SIZE的代码之前,这样可以确保在每次运行程序时只调用一次srand函数。修改后的示例代码如下:

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main() {
    int SIZE, i;
    float a, b, c, d;
   
    // 输入数组长度
    cin >> SIZE;
   
    // 设置随机数种子
    srand(time(0));
   
    // 定义数组
    float arrayA;
    float arrayB;
   
    // 使用随机数填充数组
    for (i = 0; i < SIZE; i++) {
      arrayA = static_cast(rand()) / RAND_MAX;
      arrayB = static_cast(rand()) / RAND_MAX;
    }
   
    // 打印数组
    cout << "Array A: ";
    for (i = 0; i < SIZE; i++) {
      cout << arrayA << " ";
    }
    cout << endl;
   
    cout << "Array B: ";
    for (i = 0; i < SIZE; i++) {
      cout << arrayB << " ";
    }
    cout << endl;
   
    return 0;
}

这样,无论输入多少次SIZE,都可以生成不同的随机数序列,并得到不同的数组。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

鱼丸真好吃 发表于 2024-1-5 04:25:28

FishC 发表于 2024-1-5 04:14
非常抱歉,我之前的回答有误。问题并不在于数组长度的定义上,而是在于随机数种子的设置。

在每次运 ...

感谢您的回答,我已经成功解决了问题,不在于srand的设置,我应该将a与b的定义放置在cin>>SIZE后,这样就能成功运行;

FishC 发表于 2024-1-5 04:25:39

鱼丸真好吃 发表于 2024-01-05 04:25
感谢您的回答,我已经成功解决了问题,不在于srand的 ...

非常抱歉之前的回答没有给出正确的解决方法。您是对的,问题确实出在变量定义的位置上。将a和b的定义放在cin>>SIZE的后面是正确的做法。这样可以根据输入的SIZE来动态分配数组长度,并且保证了生成不同的随机数序列。以下是修改后的示例代码:#include #include #include using namespace std;int main() {    int SIZE, i;    // 输入数组长度    cin >> SIZE;    // 定义数组    float arrayA;    float arrayB;    // 设置随机数种子    srand(time(0));    // 使用随机数填充数组    for (i = 0; i < SIZE; i++) {      arrayA = static_cast(rand()) / RAND_MAX;      arrayB = static_cast(rand()) / RAND_MAX;    }    // 打印数组    cout << "Array A: ";    for (i = 0; i < SIZE; i++) {      cout << arrayA << " ";    }    cout << endl;    cout << "Array B: ";    for (i = 0; i < SIZE; i++) {      cout << arrayB << " ";    }    cout << endl;    return 0;}现在,您应该能够成功生成不同的随机数数组了。谢谢您的指正!如果还有其他问题,请随时问我。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 为什么数组长度固定与否对随机生成数组元素有影响