मैं एक ऐप बना रहा हूं और इसके लिए मेरे पास टेस्ट डेटा भरने के लिए एक फ़ंक्शन है। लघु रूपरेखा:जावा यादृच्छिक हमेशा लंबे समय तक नकारात्मक प्रवृत्ति प्रदान कर रहा है?
HashMap<String, Long> iIDs = new HashMap<String, Long>();
HashMap<String, Integer> vals = new HashMap<String, Integer>();
long iID1 = addIndicator("I1", "i1", Color.RED);
long iID2 = addIndicator("I2", "i2", Color.BLUE);
long iID3 = addIndicator("I3", "i3", Color.GREEN);
long iID4 = addIndicator("I4", "i4", Color.MAGENTA);
iIDs.put("iID1", iID1);
iIDs.put("iID2", iID2);
iIDs.put("iID3", iID3);
iIDs.put("iID4", iID4);
int v1 = 80;
int v2 = 30;
int v3 = 25;
int v4 = 40;
vals.put("v1", v1);
vals.put("v2", v2);
vals.put("v3", v3);
vals.put("v4", v4);
int numDays = 500;
int dateDistance = 14;
Calendar c = Calendar.getInstance();
for(int i=0;i<numDays;i++)
{
c.add(Calendar.DATE, dateDistance);
for(int j=1;j<5;j++)
{
int currVal = vals.get("v"+j);
int rand = new Random().nextInt(6);
int newVal;
if(rand <= 2) // 0, 1, 2
newVal = currVal + rand;
else // 3, 4, 5
newVal = currVal - rand;
pseudo: addPointForIndicator();
vals.put("v"+j, newVal);
}
}
कोई फर्क नहीं पड़ता कि मैं परीक्षण डेटा कितनी बार बनाने के लिए, चित्र हमेशा इस तरह दिखता है:
तो यादृच्छिक संख्या की प्रवृत्ति हमेशा नकारात्मक है। ऐसा क्यों है?
आप प्रत्येक लूप पुनरावृत्ति में एक नई 'यादृच्छिक' वस्तु क्यों बनाते हैं? – Baz
यह नहीं कि यह आपके परिणामों को जरूरी बताता है, लेकिन आपका 'रैंडम' का उपयोग गलत है। आपको एक ही इंस्टेंस को सभी कॉलों में साझा करना होगा, अन्यथा आपको छद्म यादृच्छिक ** अनुक्रम ** नहीं मिल रहा है। –
सभी यादृच्छिक संख्याओं के उत्पादन के लिए 'java.util.Random' के समान उदाहरण का उपयोग करें। यह यादृच्छिकता सच्चे छद्म-यादृच्छिकरण बनाकर "यादृच्छिकरण बढ़ाएगा"। – Vulcan