जब मैं निम्नलिखित कोड चलाने के लिए, कोई बात नहीं क्या रेंज मैं for
पाश के लिए उपयोग करते हैं, कोड हमेशा बाहर true
दस बार प्रिंट देता है।Random.nextBoolean() हमेशा सच है कोई बात नहीं बीज
public static void main(String[] args)
{
Random bool = new Random();
for (int i = 0; i < 10; i++) {
bool.setSeed(i);
System.out.println(bool.nextBoolean());
}
}
हालांकि, अगर मैं कोड के लिए एक मामूली परिवर्तन करने और यादृच्छिक जनरेटर प्रिंट करने से पहले एक बार nextBoolean()
समारोह चलाते हैं, मैं उत्पादन है कि प्रभार में true
की एक सामान्य वितरण और false
जब मैं सीमा बदलने मिलता है के पाश के लिए:
public static void main(String[] args)
{
Random bool = new Random();
for (int i = 0; i < 10; i++) {
bool.setSeed(i);
bool.nextBoolean(); //Only change
System.out.println(bool.nextBoolean());
}
}
मुझे ऐसा लगता है कि nextBoolean()
समारोह हमेशा true
लौटाता है जब पहली बार मार डाला, वहाँ इस व्यवहार के लिए किसी भी कारण है?
आपको लगता है कि 'setSeed' क्या करता है? –
कोई गारेंटी नहीं है जो बीज को रैंडम ऑब्जेक्ट में बदलता है, पहले बूलियन या दूसरे बूलियन को अगले बूलियन() द्वारा वापस कर देगा। – ControlAltDel
क्या यह हर बार यादृच्छिक जनरेटर के लिए 'सत्य' और 'झूठी' का एक अलग पैटर्न नहीं बनाना चाहिए? – Dan