随机函数在c++和Matlab中

random function in C++ and Matlab

本文关键字:Matlab c++ 函数 随机      更新时间:2023-10-16

我有一个用Matlab写的代码,我用c++写的,但我不这样做,不给出相同的结果。

问题是我在代码的3部分中使用随机函数,当我使随机函数固定时,两个代码给出相同的输出。

如果有人有什么想法请帮助我。

rand函数的实现将有所不同。

您可以通过rng控制Matlab版本。

在c++端,我建议使用(c++ 11) <random>中的功能(或者如果您的环境缺乏体面的c++ 11库支持,则使用Boost的版本)。我现在无法测试,但似乎双方都支持梅森扭扭机。运气好的话,如果您选择相同的种子,实现将生成相同的数字。

我现在无法测试因为我这里没有Matlab

这是因为rand()函数给你相同的数字。在调用rand()函数之前,最好先使用srand (time(NULL));srand (time(NULL));使rand()产生不同的输出

使用srand (time(NULL));函数,您应该在代码中添加#include <time.h>#include <ctime>