草庐IT

distributed-computing

全部标签

c++ - <random> uniform_real_distribution 点间距离最小

我正在使用正方形生成坐标列表#includeusingnamespacestd;intmain(){random_devicerd;longintseed=rd();default_random_enginegen(seed);doublemax=10.0,min=-10.0;uniform_real_distributionuni_real(min,max);doublerandom_x=uni_real(gen);doublerandom_y=uni_real(gen);return0;}我想确保任意两点之间有一个最小距离。对于我的用法,当应用周期性边界条件时,这必须成立。首选解决

C++ uniform_int_distribution 总是在第一次调用时返回 min()

在标准库的至少一个实现中,第一次调用std::uniform_int_distribution不返回随机值,而是返回分布的最小值。也就是说,给定代码:default_random_engineengine(any_seed());uniform_int_distributiondistribution(smaller,larger);autox=distribution(engine);assert(x==smaller);...x实际上会是smaller对于any_seed()的任何值,smaller,或larger.要在家一起玩,您可以尝试codesample在gcc4.8.1中演

c++ - 在 VS2013 中初始化 std::discrete_distribution

我有一个std::vectorweights;包含权重列表。在运行程序的某个阶段之前,我不知道这个列表中会有什么。我愿意做std::discrete_distributiondist(weights.begin(),weights.end());但VS2013似乎没有接受迭代器范围的std::discrete_distribution的构造函数。有什么解决方法吗? 最佳答案 比较cppreference.com和Microsoftreference对于std::discrete_distribution:这些是VS2013提供的构造

c++ - 如何在 C++11 中正确使用 std::normal_distribution?

我想获得[0.0,1.0]范围内的随机float,所以这些数字中的大部分应该在0.5左右。因此我想出了以下功能:staticstd::random_device__randomDevice;staticstd::mt19937__randomGen(__randomDevice());staticstd::normal_distribution__normalDistribution(0.5,1);//Getanormallydistributedfloatvalueintherange[0,1].inlinefloatGetNormDistrFloat(){floatval=-1;d

C++ TR1 : how to use the normal_distribution?

我正在尝试使用C++STDTechnicalReport1扩展生成服从正态分布的数字,但是此代码(改编自thisarticle):mt19937eng;eng.seed(SEED);normal_distributiondist;//XXXifIusetheonebelowitexitstheforloop//uniform_intdist(1,52);for(unsignedinti=0;i仅打印1条“Generating...”日志消息,然后永远不会退出for循环!如果我改用我注释掉的发行版,它就会终止,所以我想知道我做错了什么。有什么想法吗?非常感谢!

c++ - 海森堡 : WinApi program crashes on some computers

求助!我真是无计可施了。我的程序是一个小的个人笔记管理器(谷歌搜索“cintanotes”)。在某些计算机上(当然我不拥有它们)它在启动后立即崩溃并出现未处理的异常。这些计算机没有什么特别之处,只是它们往往配备AMDCPU。环境:WindowsXP、VisualC++2005/2008、原始WinApi。关于这个“Heisenbug”,可以肯定的是:1)崩溃仅发生在Release版本中。2)一旦我删除了所有与GDI相关的内容,崩溃就会消失。3)BoundChecker没有任何提示。4)写日志显示崩溃发生在局部int变量的声明上!怎么可能呢?内存损坏?任何想法将不胜感激!更新:我已经成功

c++ - 为什么 std::uniform_real_distribution::max() 返回独占上限?

我问的主要是出于学术兴趣。documentation表示std::uniform_real_distribution生成[a,b)范围内的数字,其中a和b是构造函数参数。由于上限是独占的,我希望.max()返回小于.b()的最大可表示值。但是我在GCC、Clang和MSVC上都得到了.b()==.max()。(对于float、double和longdouble。)为什么?#include#include#includeintmain(){autod=std::uniform_real_distribution(0,1);std::cout我找到了thisnote说一些常见的实现仅将[a

c++ - std::piecewise_linear_distribution 在 VS2012 下不工作?

我决定去了解c++11更好,所以我写了这样一段代码:std::mt19937gen(10);std::piecewise_linear_distributiond(Range.begin(),Range.end(),RangeValues.begin());std::maphist;for(intn=0;++n!=iterations;)++hist[std::round(d(gen))];for(autop:hist)std::cout出于某种原因std::random_device似乎在Coliru上不起作用,所以我输入了一个const样本种子。我猜想,它是UB,因此IIRC它在很

c++ - 为什么 GCC 和 MSVC std::normal_distribution 不同?

这个问题在这里已经有了答案:std::normal_distributionresultsinwrongorderwindowsversuslinux?(1个回答)关闭6年前。我有一个简单的代码示例:#include#includeusingnamespacestd;intmain(){minstd_rand0gen(1);uniform_real_distributiondist(0.0,1.0);for(inti=0;idist2(0.0,1.0);minstd_rand0gen2(1);for(inti=0;i我在gcc上编译的和msvc.我在标准代码上得到不同的结果!(那么为什

c# - "This file came from another computer and might be blocked to protect this computer."- 如何以编程方式在 C# .net 中删除此属性?

这个问题在这里已经有了答案:UnblockFilefromwithin.net4c#(3个答案)关闭8年前。我用C#编写了一个程序。如果用户勾选此框,它会将自身复制到启动。应用程序使用注册表项“SOFTWARE\Microsoft\Windows\CurrentVersion\Run”将自身添加到启动。它工作正常,除了每次重新启动机器时都会提示用户是否确定要运行该程序,因为它被Windows阻止,因为它“来自另一台计算机”。有什么方法可以通过代码摆脱这个Windows“已阻止”标志,以便每次程序尝试自行运行时都不会提示用户?谢谢