मैं आदेश मतलब 0 और सिग्मा 1.बूस्ट सामान्य वितरण कक्षाओं का उपयोग कैसे करें?
के रूप में कुछ मूल्यों पर या -1 और 1 से परे हैं निम्नलिखित कोड काम नहीं करता है (और साथ एक सामान्य वितरण उत्पन्न करने के लिए बढ़ावा :: normal_distribution उपयोग करने के लिए कोशिश कर रहा हूँ नहीं होना चाहिए)। क्या कोई यह नहीं बता सकता कि मैं क्या गलत कर रहा हूं?
#include <boost/random.hpp>
#include <boost/random/normal_distribution.hpp>
int main()
{
boost::mt19937 rng; // I don't seed it on purpouse (it's not relevant)
boost::normal_distribution<> nd(0.0, 1.0);
boost::variate_generator<boost::mt19937&,
boost::normal_distribution<> > var_nor(rng, nd);
int i = 0; for (; i < 10; ++i)
{
double d = var_nor();
std::cout << d << std::endl;
}
}
परिणाम मेरी मशीन पर है:
0.213436
-0.49558
1.57538
-1.0592
1.83927
1.88577
0.604675
-0.365983
-0.578264
-0.634376
आप सभी मूल्यों -1 और 1.
आप सभी पहले से धन्यवाद के बीच नहीं हैं देख सकते हैं!
EDIT: यह तब होता है जब आपके पास समय सीमा होती है और अभ्यास करने से पहले सिद्धांत का अध्ययन करने से बचती है।
मैंने अपने सभी आंकड़ों को भूल लिया है, लेकिन भिन्नता (जो वितरण के ctor का दूसरा पैरामीटर है) निश्चित रूप से एक सीमा के लिए एक पूर्ण कटऑफ निर्दिष्ट नहीं करता है? यह एक उपाय है कि चीजें कैसे फैलती हैं। –
@ नील बटरवर्थ: कन्स्ट्रक्टर में दूसरा पैरामीटर मानक विचलन (भिन्नता का वर्ग रूट) है। – jason
ठीक है, मैंने कहा था कि मैं लगभग सब कुछ भूल गया था! –