随机打乱 C++ 数组(每次都不同)

2024-05-23

我想在C++中对数组进行洗牌,并且每次运行程序时,我想要进行不同的随机洗牌。我有myArray的长度。目前我正在使用:

random_shuffle(myArray, myArray+N)

但这每次都会产生相同的洗牌。为了包含随机数,我尝试过:

random_shuffle(myArray, myArray+N, rand()%i)

但我得到了错误cannot convert parameter 3 from 'int' to 'int&'.

我考虑过使用shuffle函数代替,基于这个例子 http://en.cppreference.com/w/cpp/algorithm/random_shuffle#Example,但我似乎一直在使用 2011 年之前的编译器。

抱歉,如果这是一个极其愚蠢的问题。我在 SO 上找不到这个特定问题的任何内容,谷歌只是告诉我创建洗牌算法的方法。


random_shuffle(myArray, myArray+N)将使用std::rand() http://en.cppreference.com/w/cpp/numeric/random/rand获得随机数。如果您希望每次运行程序时随机序列都不同,则需要首先使用以下命令为随机生成器播种std::srand() http://en.cppreference.com/w/cpp/numeric/random/srand。使用当前系统时间来为随机数生成器提供种子是很常见的,这通常足以满足非安全相关的目的。您只需在程序执行期间执行一次此操作。

std::srand(std::time(0));

如果你不打电话std::srand()在第一次之前std::rand()被称为,那么std::rand()表现得就像你已经打电话过一样std::srand(1)——也就是说,每次运行程序时,您都隐式地使用相同的值作为种子,这将在每次执行程序时产生相同的随机序列。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

随机打乱 C++ 数组(每次都不同) 的相关文章

随机推荐

  • SonarQube 不收集代码覆盖率

    我在使用 sonar runner 和 jacoco 设置 gradle 时遇到问题 除了代码覆盖率之外 一切都很好 我已经尝试了一切但没有结果 这是我的 build gradle 文件 apply from dependencies gr
  • 防止应用程序在控制台关闭时退出

    I use AllocConsole 在 winform 应用程序中打开控制台 如何防止应用程序在控制台关闭时退出 EDIT 不时更新的完成百分比是我想在控制台中显示的 void bkpDBFull PercentComplete obje
  • PHP-MySQLi 连接随机失败并显示“无法分配请求的地址”

    大约两周以来 我一直在处理 LAMP 堆栈中最奇怪的问题之一 长话短说 与 MySQL 服务器的随机连接失败并显示错误消息 Warning mysqli real connect HY000 2002 Cannot assign reque
  • NSIndexpath.item 与 NSIndexpath.row

    有谁知道之间的区别NSIndexpath row and NSIndexpath item 具体来说 我在以下情况中使用哪一个 UITableViewCell tableView UITableView tableView cellForR
  • 从枚举参数推断 Typescript 函数返回类型

    我想创建一个加载服务 为枚举中定义的 ID 返回正确类型的数据 我所做的看起来像这样 enum IdentifierEnum ID1 ID1 ID2 ID2 interface DataType IdentifierEnum ID1 num
  • 从 React-Navigation V4 - V5 迁移到 CommonActions.init 和 router.getStateForAction 发生了什么?

    我们的应用程序使用CommonActions init 并将其传递给router getStateForAction 我这里有两个问题 the init 功能不再在CommonActions the router getStateForAc
  • “如何判断 Python 中的字符串是否重复?”的更复杂版本

    我正在读书这个帖子 https stackoverflow com questions 29481088 how can i tell if a string repeats itself in python我想知道是否有人可以找到将重复的
  • Rails:使用水豚填充动态字段

    我有一个通过 javascript 动态创建的带有长 id 的文本字段 user user skills attributes 69878013874980 skill title 哪里的69878013874980是生成的时间戳 如何在水
  • 如何在 Netbeans 工具栏中创建自定义按钮?

    我有一个命令行脚本 保存在我的电脑上的一个文件中 如何在 NB 7 0 中创建工具栏按钮 以便单击此按钮将运行我保存的脚本 另外 我应该将脚本文件命名为什么文件扩展名 以便它可以执行 或者这很重要吗 这里有一个工具栏按钮教程 http pl
  • [\b] 退格正则表达式有什么用?

    b 显然匹配退格字符 我无法理解字符串如何包含退格字符 有人能给我一个具体的例子来说明如何使用它吗 非常感谢 虽然所有其他人总体上都是正确的 即 b是单词边界 b does表示字符类中的退格键 b 这确实会匹配退格字符 它只是一个可以出现在
  • “第一类对象”是什么意思?

    In a 最近的问题 https stackoverflow com questions 700684 content ideas for a short javascript lesson 我收到了一些建议 其中包括讨论 JavaScri
  • 如何获取Postgres当前的可用磁盘空间?

    在开始在数据库中进行某些工作之前 我需要确保至少有 1Gb 的可用磁盘空间 我正在寻找这样的东西 select pg get free disk space 是否可以 我在文档中没有找到任何相关内容 PG 9 3 操作系统 Linux Wi
  • 通过node.js的npm安装gulp会破坏windows

    我想在我的 Windows 机器上使用 gulp 它实际上工作得很好 除非我尝试使用创建的文件 例如推送到 github 或删除 然后它就崩溃了 因为文件路径太长 这似乎是一个相当常见的问题 https github com joyent
  • 如何从另一个UserControl继承一个UserControl?

    是否可以从另一个用户控件继承用户控件 我想要实现的是从另一个用户控件继承的用户控件 所以我有baseusercontrol ascx 它只有文本 Stuff 然后我有另一个用户控件 childusercontrol ascx 继承了base
  • 数据框中按行相关

    我正在尝试计算大型数据帧的所有行之间的相关性 到目前为止已经提出了一个有效的简单 for 循环 例如 name lt c a b c d col1 lt c 43 78 43 84 37 92 31 72 col2 lt c 43 80 4
  • Bootstrap 4 轮播标题在小型设备上不可见

    我正在练习 bootstrap 4 轮播示例 其中给出http v4 alpha getbootstrap com examples http v4 alpha getbootstrap com examples 在移动设备或小屏幕上测试时
  • Eclipse/CDT 项目资源管理器中这个装饰文件夹图标的含义是什么?

    CDT Eclipse 项目资源管理器中的这个特殊文件夹图标是什么意思 这个蓝色的东西看起来像一把钥匙 螺丝或某种工具 我猜这与CVS有关 我在 首选项 gt 外观 gt 标签装饰 设置中找不到该信息 文件夹或文件上的扳手图标意味着它正在覆
  • 将 Eclipse 中的路径/文件名复制到剪贴板

    是否有将当前路径 文件复制到剪贴板的快捷方式 Just select the file tab and hit Ctrl C to copy file basename into clipboard Hit Alt Enter to bri
  • 将 .com 重定向到 .htaccess 中的 .org

    我将domain com 和domain org 作为指向同一虚拟主机的别名 如何使用 htaccess 将所有domain com 请求重定向到domain org 你可以使用模组重写 http httpd apache org docs
  • 随机打乱 C++ 数组(每次都不同)

    我想在C 中对数组进行洗牌 并且每次运行程序时 我想要进行不同的随机洗牌 我有myArray的长度 目前我正在使用 random shuffle myArray myArray N 但这每次都会产生相同的洗牌 为了包含随机数 我尝试过 ra