c# - 2 डबल नंबर के बीच यादृच्छिक संख्या




5 Answers

हाँ।

Random.NextDouble 0 और 1 के बीच एक डबल देता है। फिर आप उस सीमा से गुणा करते हैं जिसमें आपको जाने की आवश्यकता होती है (अधिकतम और न्यूनतम के बीच अंतर) और फिर उसे आधार (न्यूनतम) में जोड़ें।

public double GetRandomNumber(double minimum, double maximum)
{ 
    Random random = new Random();
    return random.NextDouble() * (maximum - minimum) + minimum;
}

वास्तविक कोड यादृच्छिक सदस्य होना चाहिए। यह यादृच्छिक संख्या जेनरेटर बनाने की लागत को बचाएगा, और आपको अक्सर GetRandomNumber को कॉल करने में सक्षम करेगा। चूंकि हम प्रत्येक कॉल के साथ एक नया आरएनजी शुरू कर रहे हैं, यदि आप पर्याप्त तेज़ी से कॉल करते हैं कि कॉल के बीच सिस्टम का समय नहीं बदलता है तो आरएनजी सटीक उसी टाइमस्टैम्प के साथ बीजित हो जाएगा, और यादृच्छिक संख्याओं की एक ही स्ट्रीम उत्पन्न करेगा।

क्या 2 युगल के बीच एक यादृच्छिक संख्या उत्पन्न करना संभव है?

उदाहरण:

public double GetRandomeNumber(double minimum, double maximum)
{
    return Random.NextDouble(minimum, maximum) 
}

फिर मैं इसे निम्नलिखित के साथ बुलाता हूं:

double result = GetRandomNumber(1.23, 5.34);

किसी भी विचार की सराहना की जाएगी।




सबसे आसान दृष्टिकोण केवल 0 और दो संख्याओं के अंतर के बीच एक यादृच्छिक संख्या उत्पन्न करेगा। फिर परिणाम में दो संख्याओं के छोटे जोड़ें।




आप इस तरह के कोड का उपयोग कर सकते हैं:

public double getRandomNumber(double minimum, double maximum) {
    return minimum + randomizer.nextDouble() * (maximum - minimum);
}



क्या होगा यदि मूल्यों में से एक नकारात्मक है? बेहतर विचार नहीं होगा:

double NextDouble(double min, double max)
{
       if (min >= max)
            throw new ArgumentOutOfRangeException();    
       return random.NextDouble() * (Math.Abs(max-min)) + min;
}



Random random = new Random();

double NextDouble(double minimum, double maximum)
{  

    return random.NextDouble()*random.Next(minimum,maximum);

}



Related

c# random

Tags

c#   random