相关疑难解决方法(0)

由Rnd生成的随机数序列在C中是否保证始终相同,对于同一种子?

我只是想知道rand(http://www.cplusplus.com/reference/cstdlib/rand/)函数是否会生成相同的随机数序列,同时使用相同的种子,在不同的 libc实现上运行,甚至不同的编译器和操作系统(win,linux).

我使用各种编译器(g ++ 4.8,g ++ 5.1和clang)进行了一些测试,似乎答案是肯定的,但我没有发现任何"正式"提到C的随机数生成中使用的PRNG算法(http://pubs.opengroup.org/onlinepubs/009604599/functions/rand.html),还是这些都应该在标准中提到的...

c random

26
推荐指数
2
解决办法
2175
查看次数

C++ 11随机数分布在各个平台上并不一致 - 有哪些替代方案?

我正在为标准的C++ 11引擎寻找一组可移植的发行版,比如`std :: mt19937'(参见http://en.cppreference.com/w/cpp/numeric/random).

引擎实现一致地执行(即在不同平台上生成相同的序列 - 使用Clang和MSVC进行测试),但是分布似乎在不同平台上以不同方式实现.

因此,即使引擎产生相同的序列,似乎分布(例如std::normal_distribution<double>)在不同的平台上不使用相同数量的样本(即产生不同的结果),这在我的情况下是不可接受的.

可能有一个第三方库我可以使用它遵循C++ 11随机模板,但这将在流行的平台上提供一致的值(看看GCC,MSVC和Clang/llvm的支持).

我到目前为止看到的选项是:

  • Boost.random(有点重,但值得,因为它很好地匹配c ++ 11对应物)
  • 从libstd ++克隆(也值得并且可能是可移植的,但是删除特定的函数可能并不简单)
  • 创建我自己的类似C++ 11的随机发行版

我需要制服,正常,毒药和瑞利.

c++ random boost libstdc++ c++11

13
推荐指数
1
解决办法
1196
查看次数

c ++ 11中的<random>库是可移植的吗?

c ++ 11中的库是可移植的吗?我避免使用rand(),因为我听说它不便携.

c++ random c++11

8
推荐指数
2
解决办法
1326
查看次数

stdlib的rand()总是给出相同的序列吗?

我非常希望能够重复生成相同的伪随机数据集,特别是在调整实验代码时.通过观察我会说,rand()每次*似乎给出相同的数字序列.

是否可以保证在同一台机器/不同机器/不同架构上重复执行?

*明显对于同一种子.

c random std

6
推荐指数
1
解决办法
2921
查看次数

C/C++算法在不同平台上从同一种子产生相同的伪随机数序列?

标题说明了一切,我正在寻找一些最好的东西,因为我不想添加更多的库.

性能应该很好,因为我需要一个紧凑的高性能循环.我想这将以随机程度为代价.

c c++ random portability consistency

3
推荐指数
2
解决办法
2万
查看次数

标签 统计

random ×5

c ×3

c++ ×3

c++11 ×2

boost ×1

consistency ×1

libstdc++ ×1

portability ×1

std ×1