随机数生成器c ++

 mobiledu2502856013 发布于 2023-02-13 18:26

好吧,我对c ++很新,我试图让随机数生成器工作.一般的想法是每次循环调用随机生成器并将随机数放入数组.它基本上有效,唯一的问题是数量不是随机的.每次打印出来的时间都是-842150451,这是一个问题.

int main()
{
    int *array;
    int size;
    cout << "Enter size of array: ";
    cin >> size;
    array = new int[size];
    for (int x = 0; x < size; x++)
    {
        srand ( time(NULL) );
        int randomNumber;
        randomNumber = rand() % 10000 + 1;
        randomNumber >> array[x];

它是更大的排序算法的一部分,所以我不打扰复制整个事情,因为这是问题的一部分.

1 个回答
  • srand在循环之前调用.它根据当前时间初始化生成器 - 如果循环足够快,您将在每次迭代中使用相同的种子初始化它,因此没有真正的随机性.一次初始化就足够了.

    @ ThomasPadron-McCarthy在你的问题的一条评论中指出了另一个问题:你正在尝试使用这个值进入数组

    randomNumber >> array[x];
    

    如果你没有重载那个操作符,那么它是一个移位操作,它将改变随机数,但不会将它存储到数组中.用它来存储它:

    array[x] = randomNumber;
    

    2023-02-13 18:29 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有