草庐IT

随机性

全部标签

c++ - 用于随机插入/删除的综合 vector 与链表基准

所以我知道this问题,以及其他处理问题的SO,但其中大部分处理数据结构的复杂性(只是复制到这里,链接这个理论上有O(我理解复杂性似乎表明列表会更好,但我更关心现实世界的表现。注意:这个问题的灵感来自slides45and46ofBjarneStroustrup'spresentationatGoingNative2012他在其中谈到了处理器缓存和引用位置如何真正帮助vector,但对列表根本没有(或不够)帮助。问题:是否有一种使用CPU时间而不是墙时间来测试它的好方法,并获得一种“随机”插入和删除可以事先完成的元素的好方法,所以它确实如此不影响时间?作为奖励,如果能够将其应用于两个任

c++ - boost 随机和 OpenMP

我从代码的OpenMP并行部分收到“总线错误”。我在下面重新创建了一个简单版本的问题。该代码实质上对函数uniform_distribution进行了多次调用。,它使用Boost的uniform_int_distribution绘制一个0到20000之间的整数。这post警告两个线程访问同一个对象。我猜那是eng就我而言。(不幸的是,我不知道如何编写“合适的互斥包装器”,正如该帖子所建议的那样)。我想到的一个可能的肮脏解决方案是创建一个本地eng在#pragmafor里面循环并将其作为参数传递给uniform_distribution.我不喜欢这个想法,因为在我的真实代码中,我调用了很

概率论与统计学基础 | 随机变量和概率分布

概率论基本概念:概率的定义与性质:概率是描述随机现象发生可能性的数学工具。概率的基本性质包括非负性、规范性和可列可加性。随机试验与样本空间:随机试验是一种具有随机性质的实验,其所有可能结果组成的集合称为样本空间。事件与事件的运算:事件是样本空间的子集,事件的运算包括并、交、补等操作。统计学基本概念:总体与样本:总体是研究对象的全体,而样本是从总体中抽取的部分。参数与统计量:总体的特征称为参数,样本的特征称为统计量。随机变量的概念:随机变量的定义:随机变量是对随机试验结果的数量化描述,可以是离散或连续的。离散随机变量与连续随机变量:离散随机变量对应于可数的取值,而连续随机变量则对应于无限个可能取

c++ - 生成伪随机正定矩阵

我想测试我用C++编写的一个简单的Cholesky代码。所以我生成一个随机的下三角L并乘以它的转置以生成A。A=L*Lt;但是我的代码无法分解A因子。所以我在Matlab中尝试了这个:N=200;L=tril(rand(N,N));A=L*L';[lc,p]=chol(A,'lower');p这会输出非零p,这意味着Matlab也无法分解因子A。我猜测随机性会生成秩亏矩阵。我说得对吗?更新:我忘了提到下面的Matlab代码似乎按照下面Malife指出的那样工作:N=200;L=rand(N,N);A=L*L';[lc,p]=chol(A,'lower');p区别在于L在第一个代码中是下

c++ - 使用快速英特尔随机生成器 (SSE2) 失败并出现堆栈...已损坏

我需要非常快(最快)的随机生成器。我从英特尔找到了这个:FastIntelRandomNumberGenerator看起来不错。所以我在MSVisualStudio2013中创建了项目://FastRandom.h:#pragmaonce#include"emmintrin.h"#include//definethisifyouwishtoreturnvaluessimilartothestandardrand();#defineCOMPATABILITYnamespaceBrans{__declspec(align(16))static__m128icur_seed;//uncome

c++ - 我可以像在 C++ 中那样在 R 中拥有多个独立的随机数生成器吗?

我有许多独立的随机过程(比如到达过程)需要我生成随机数。我想为这些过程中的每一个使用通用随机数,以便我可以比较不同策略在控制这些策略时的执行情况。我希望进程A由生成器A管理(使用种子A)我希望进程B由生成器B管理(使用种子B)..等等。这可以在R中实现吗?我找不到任何人做过。我试过了。如果这是一个重复的问题,请原谅我。谢谢jack 最佳答案 这是我偶尔想做的事情-并且还没有想出比下面的杂凑更好的东西(只有当你只使用1或2个不同的随机分布时它才真正有用,因为你必须为每个函数编写一个函数:#Makealistofseeds-genera

c++ - 多次播种伪随机数生成器的问题?

我已经看到很多关于每次执行时不要多次为伪随机数生成器播种的建议,但从未伴随过详尽的解释。当然,很容易看出为什么以下(C/C++)示例不是一个好主意:intget_rand(){srand(time(NULL));returnrand();}因为每秒多次调用get_rand会产生重复的结果。但是下面的例子难道不是一个可以接受的解决方案吗?MyRand.h#ifndefMY_RAND_H#defineMY_RAND_HclassMyRand{public:MyRand();intget_rand()const;private:staticunsignedintseed_base;};#en

c++ - 并发随机数生成

我正在使用openmp编写一个并行程序,在其中我生成一个随机float矩阵,然后对其进行一些计算。我目前想让生成矩阵的步骤并行运行,但我遇到了rand()函数不打算同时运行的问题。我不想使用锁在rand上提供互斥锁,因为这是循环中唯一要做的事情,顺序运行它可能会更有效率。有什么方法可以并行高效地执行此步骤?这里是这部分的当前代码(rand上没有互斥锁);#pragmaompparalleldefault(private){inti=omp_get_thread_num();for(intj=0;j 最佳答案 如果您使用的是C++,则

c++ - 描述和发现导致看似随机崩溃的状态破坏错误

我目前正面临着我的团队正在处理的大型复杂项目中遇到过的最严重的错误之一。我们使用C++作为编程语言,目前使用VisualStudio进行开发,尽管最终产品旨在跨平台运行。漏洞:我们的系统中存在一个错误,它会在看似随机的执行点触发崩溃。崩溃的原因通常是地址的读取访问冲突,每次执行程序时地址都会发生变化。有时我们也会遇到堆损坏错误。调用堆栈将我们引向代码库中的变化点,并且很少引向某些外部库(在我们的例子中是Lua),而错误显然并不存在。似乎这个错误在过去4个月内一直在发展。那段时间之前,大致上,我的一些团队成员看到前端程序崩溃的方式和位置与现在发生的情况非常相似。更多细节:我们的代码库大约

c++ - 为什么我在从 time(NULL) 播种随机数生成器时收到可能丢失数据的警告?

我正在学习vector并编写了一些代码来选择随机数,我可以用它来在荷兰购买彩票。但是尽管它运行了,编译器警告我“从‘time_t’转换为‘unsignedint,可能丢失数据’”。谁能找出造成这种情况的原因?我什至没有在这段代码中定义任何unsignedint;据我所知,默认情况下inti是一个带符号的int。感谢您的洞察力。#include#include#include#includeusingnamespacestd;voidprint_numbers();stringprint_color();intmain(){srand(time(NULL));print_numbers(