首页 > 解决方案 > 仅生成零的犰狳随机数生成器(Windows、MSYS2)

问题描述

下面的测试程序应该生成一个包含 5 个随机元素的向量,但是当我在我的机器上编译和运行它时只包含零。

#include <iostream>
#include <armadillo>

using std::cout;
using std::endl;
using arma::vec;

int main()
{
    arma::arma_rng::set_seed(1);
    vec v = arma::randu<vec>(5);
    cout << v << endl;
    cout << v(0) << endl;

    return 0;
}

编译/输出

$ g++ main.cpp -o example -std=c++11 -O2 -larmadillo

$ ./example.exe
        0
        0
        0
        0
        0

0

我在 Windows 10 上,使用来自 MSYS2 的 gcc((Rev1,由 MSYS2 项目构建)8.2.1 20181214)和 Armadillo(9.200.6)。

软件包(mingw64 子系统中的 pacman):

mingw64/mingw-w64-x86_64-armadillo 9.200.6-1
mingw64/mingw-w64-x86_64-gcc-8.3.0-1

知道是什么原因造成的吗?

我有一种暗示,这可能是因为我使用的是 Armadillo 的 MSYS2 版本,但我不确定,并且还没有测试自己(还)编译库。

编辑:我有一种暗示,这与 MSYS 有关,所以我在这里打开了一个问题:https ://github.com/msys2/MINGW-packages/issues/5019

标签: c++armadillo

解决方案


推荐阅读