不同实现之间的随机输出不同

2023-12-06

我已经用 libstdc++、libc++ 和 dinkumware 尝试过这个程序:

#include <iostream>
#include <algorithm>
#include <vector>
#include <random>
#include <functional>
#include <limits>

int main()
{
    std::vector<int> v(10);

    std::mt19937 rand{0};
    std::uniform_int_distribution<> dist(
        1, 10
    );

    std::generate_n(v.begin(), v.size(),
        std::bind(dist, rand));

    for (auto i : v)
        std::cout << i << " ";
}

输出分别为:

6 6 8 9 7 9 6 9 5 7 

6 1 4 4 8 10 4 6 3 5 

5 10 4 1 4 10 8 4 8 4 

每次运行的输出都是一致的,但正如您所看到的,它们是不同的。解释?


no需要实施uniform_int_distribution<>。 [rand.dist.general] 指定:

用于生成每个指定分布的算法是实现定义的。

[rand.dist.uni.int] 的所有内容是:

uniform_int_distribution 随机数分布产生随机整数i, a <= i <= b, 分散式 根据常数离散概率函数P(i | a, b) = 1/(b − a + 1) .

每个实现都可以自由地按照自己的意愿实现此分布。您看到的显然是三种不同的实现。

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

不同实现之间的随机输出不同 的相关文章

随机推荐

  • R:如何按组计算数据表的多列滞后

    我想计算数据表中按 id 分组的变量的差异 这是一些示例数据 数据以 1 Hz 的采样率记录 我想估计一阶和二阶导数 速度 加速度 df lt read table text x y id 1 2 1 2 4 1 3 5 1 1 8 2 5
  • 在 WPF 中连接静态资源

    我需要将字符串资源中的两个字符串连接到标签中 我想要这样的东西
  • 计算可用带宽

    我需要在 Windows 中用 C 编写代码来计算可用带宽 我目前计划使用云杉算法 我想知道在 Windows 中是否有任何可用于该算法的代码 或者是否有任何其他技术来获取互联网带宽 搜索 云杉算法 给了我这个结果http iris csa
  • 自动递增 id JSON

    我正在制作一个 RESTful Web 服务 我希望发布到 JSON 文件的项目有一个 Id 我一直在到处搜索 但找不到任何有关如何执行此操作的信息 JSON 看起来像这样 id 2 title Hello World artist Joh
  • iOS Google 地图 SDK - 隐藏/删除标签

    我在我的 iOS 项目中使用 Google Maps SDK 我正在使用 Swift 和我想在 UIView 中显示 Google 地图 不带任何文本或标签 我能够正确显示地图 但无法从地图中删除文本 我在 Javascript 中看到了同
  • 使用 node.js 解密 AES256 返回错误的最终块长度

    使用这个Gist我能够在 Node js 0 8 7 中成功解密 AES256 然后 当我升级到 Node js 0 10 24 时 我现在看到以下错误 类型错误 错误 0606506D 数字信封 例程 EVP DecryptFinal e
  • MD5 哈希加盐,用于在 C# 中将密码保存在数据库中

    您能否告诉我一些简单的算法 用于通过 MD5 哈希用户密码 但使用salt以提高可靠性 现在我有这个 private static string GenerateHash string value var data System Text
  • 在 JavaScript 中获取 CSS 类名

    我面临着从 JavaScript 中的字符串获取类名的问题 例如 var ddd p class Box title Heading text here p 现在我想从中获取 p 标签的类名 浏览器擅长 HTML 解析 setup var
  • 如何获取 kivy 按钮的 Id 和 Text 值作为字符串?

    我有一个带有多个按钮的应用程序 我需要在按下按钮时以字符串形式获取按钮的 id 和文本值 然后 抓取的按钮 ID 和文本值将被传递到另一个函数以进行进一步处理 为了简单起见 我编写了这个示例程序 main py from kivy app
  • ZMQ ROUTER中的客户端维护

    ZeroMQ ROUTER 套接字如何在内部维护其客户端连接 该指南称每个客户都会获得一个唯一的 ID 但并不清楚 什么算作客户端 每台机器不同的客户端或每个连接的应用程序不同 从客户端收到的请求数量是否有限制 原因是 我正在对这段代码进行
  • 图像比较并返回百分比

    int DiferentPixels 0 Bitmap first new Bitmap First jpg Bitmap second new Bitmap Second jpg Bitmap container new Bitmap f
  • Angular:承诺内的异步等待 - 事件监听器

    从一天起我就一直在这个问题上苦苦挣扎 我想创造这样一种情况 img 在 component ts 文件中我只想包含这一行 this userdp this userService getUserDp 在 getUserDp 中 代码如下 a
  • 如何重新标记 matplotlib 热图的轴刻度

    我正在关注这个例子生成热图 是否可以重新标记 X 轴上的值 并向其添加一个常量 例如 我希望 X 轴上的数字不是 0 1 2 3 4 而是 5 6 7 8 9 您可以使用关键字参数来标记 x 轴和 y 轴extent在致电imshow 这是
  • 如何从Python列表中生成所有可能的排列对? [复制]

    这个问题在这里已经有答案了 如何从 Python 列表中生成所有可能的对排列 Example input 3 8 2 output 3 8 3 2 8 3 8 2 2 3 2 8 您可以使用itertools permutations im
  • 带有 CTE 的 BigQuery UPDATE 语句

    正在寻求有关 BigQuery 的帮助 我似乎无法在 UPDATE 语句中使用 CTE 即 with ctename as select column1 column2 column3 from blah update table2 set
  • 如何禁用引导列中的垂直滚动

    我有两个引导列 左 和 右 我想用屏幕修复左栏并禁用滚动 但我想在右列中启用滚动 这将有更多内容 基本上我想显示帖子 使帖子标题显示在左列中 帖子内容显示在右列中 完全相同this 注 我用过overflow y hidden 但没有成功
  • 在主题中使用 fontFamily 属性时,Toast 会抛出 ArrayIndexOutOfBoundsException 和 appcompat v26

    每当我展示一个Toast 应用程序崩溃 如果我使用旧版本的 AppCompat 库或删除该应用程序 则该应用程序可以正常工作fontFamily从风格上 创建时 Override protected void onCreate Bundle
  • 在 Dataobject 中提交表单 - Silverstripe 3.1

    我正在使用 Aram 的 DataobjectAsPage 模块 现在我想在每个 DOaP 站点上都有一个表单 我在我的数据对象中创建了这样的表单 public function RegistrationForm fields new Fi
  • 获得mysql中每个人第二高的工资

    我们有如下表 person id salary 1 1500 1 1000 1 500 2 2000 2 1000 3 3000 3 2000 4 3000 4 1000 我们希望每个人的薪水都是第二高的 按每个人分组并获得第二高的工资 像
  • 不同实现之间的随机输出不同

    我已经用 libstdc libc 和 dinkumware 尝试过这个程序 include