के बीच एक यादृच्छिक संख्या बनाने के लिए मैं सी ++ में स्टॉक मूल्य आंदोलन मॉडल करने की कोशिश कर रहा हूं। मुझे 0 से 1.0 से 1 लगातार
के बीच यादृच्छिक संख्या बनाने की आवश्यकता है, लेकिन ऐसा लगता है कि यादृच्छिक संख्या जेनरेटर मान बढ़ता रहता है और वास्तव में यादृच्छिक नहीं है।
कोड इस तरह दिखता है:
#include<iostream>
#include<ctime>
#include<cstdlib>
#include<time.h>
using namespace std;
int main()
{
double stockPrice = 25;
int start = 0, end = 0;
start = clock();
srand (time(NULL));
cout << (double) rand()/(double) (RAND_MAX) << endl;
system("pause");
while(stockPrice > 18)
{
if(stockPrice == 20)
{
double probability = (rand()/(double)RAND_MAX);
if(probability <= (1/10))
{
stockPrice = stockPrice-1;
}
else
{
stockPrice = stockPrice +1;
}
}
else if (stockPrice < 20)
{
double probability = (rand()/(double)RAND_MAX);
if(probability <= (1/3))
{
stockPrice = stockPrice -1;
}
else
{
stockPrice = stockPrice +1;
}
}
else
{
double probability = (rand()/(double)RAND_MAX);
if(probability <= (2/3))
{
stockPrice = stockPrice -1;
}
else
{
stockPrice = stockPrice +1;
}
}
cout << stockPrice << endl;
}
end = clock();
double t = (double)(start-end)/CLOCKS_PER_SEC;
cout << t << endl;
system("pause");
}
नहीं
यकीन है कि यह कैसे हल करने के लिए .. कुछ मार्गदर्शन ...
"यादृच्छिक संख्या जनरेटर मूल्य बढ़ता रहता है और वास्तव में यादृच्छिक नहीं है।" - नहीं! –
हां। बनाए गए मान 0.812, 0.814 और इतने पर हैं .. इसे कैसे ठीक करें? – lakesh
@lakesh यदि कार्यक्रम के हर पुन: चलाने पर ऐसा होता है, [यहां] (http://stackoverflow.com/questions/17385541/c- पूर्वानुमानित-rand-output/17385746#17385746) स्पष्टीकरण है। –