random

c – boost :: random每次生成相同的数字

如何使用boost:随机正确?这就对了.但也许有一点问题,如下所示:看起来好听它产生相同的随机数解决方法如果您希望每次运行程序时都会更改随机数序列,则需要通过使用当前时间进行初始化来更改随机种子你会发现一个例子there,摘录:

c – 多线程random_r比单线程版本慢

以下程序基本上与here所述的程序相同.当我使用两个线程(NTHREADS==2)运行和编译程序时,我得到以下运行时间:当它只运行一个线程(NTHREADS==1)时,我的运行时间明显更好,即使它只使用一个核心.我的系统是双核,我知道random_r是线程安全的,我很确定它是非阻塞的.当没有random_r运行相同的程序,并且使用余弦和正弦的计算作为替代时,双线程版本的运行时间大约在预期的1/2的

使用C TR1从二项分布生成数

我试图使用以下代码从二项分布生成数字.它编译,但一个执行它挂起来.有人建议使用CTR1库功能从二项分布生成数字的工作代码?解决方法这里是工作代码:您可以查看其结果here,它可以与最近的GCC和Clang版本一起使用.请注意,通常最好使用random_device而不是时间来获取种子.使用–std=c11编译.

c – random_shuffle算法 – 是否产生了没有随机生成函数的相同结果?

如果没有为标准库中的random_shuffle算法提供随机生成器函数,如果提供相同的数据,程序的连续运行是否会生成相同的随机序列?解决方法25.2.11只是说元素是均匀分布的.它不能保证在幕后使用哪个RNG,因此您不能依赖任何此类行为.为了保证相同的洗牌结果,您需要提供自己的RNG来提供这些保证,但我怀疑即使这样,如果您更新标准库,random_shuffle算法本身也可以改变效果.

/ dev / random总是返回相同的序列

我打算使用/dev/random输出作为openssl密钥生成的种子,然后我编写这个小程序只是为了检查我要做什么:我运行程序一两次,一切似乎工作正常,但后来我再次按顺序运行了四次,这是输出:除了128字节的随机字符串之外,Theese对我来说似乎很重要,因为它们大多是相同的.然后,排除NSA篡改linux内核随机数生成器的可能性,我只能猜测这与我的机器中的可用熵有关,当我在序列中询问太多字节时,它会耗尽.我的问题是:1)这个猜测是否正确?

c – 如何为random_shuffle编写range-v3动作?

使用range-v3library,使得编写算法代码更加紧凑,例如这是如何生成一堆随机数:LiveExample.但是,我更愿意使用假设的动作::random_shuffle()来扩展管道这是我尝试编写这样的动作LiveExample无法编译,因为某些operator()深藏在某处未找到.据我所见,我忠实地从类似的代码中转换了上述代码,例如action::sort().唯一的区别是random_shuffle()有两个重载,而所有其他动作都有一个重载,其额外参数的默认值.这转换为上面的random_shu

c – inside random()函数 – 如何实现?

我们通常使用random()函数在C中创建随机数.使用voidsrand可以改善结果,因为它会根据种子的值生成随机数.谁能告诉我随机功能是如何实际实现的?解决方法Here是GNUC库的random()函数中使用的算法的详细描述.基本上: