हैलो मुझे सी # के साथ यादृच्छिक संख्याएं उत्पन्न करने में कुछ समस्याएं आ रही हैं अब मेरे पास यह कार्य है।यादृच्छिक मुठभेड़ इतना यादृच्छिक नहीं है
public Color getRandomColor()
{
Color1 = new Random().Next(new Random().Next(0, 100), new Random().Next(200, 255));
Color2 = new Random().Next(new Random().Next(0, 100), new Random().Next(200, 255));
Color3 = new Random().Next(new Random().Next(0, 100), new Random().Next(200, 255));
Color color = Color.FromArgb(Color1, Color2, Color3);
Console.WriteLine("R: " + Color1 + " G: " + Color2 + " B: " + Color3 + " = " + color.Name);
return color;
}
अब आप नए रैंडम का एक बहुत देखते हैं कि() वहाँ, वह यह है कि क्योंकि मैं संभावना यह एक ही उदाहरण त्रुटि हो सकती है कि उखाड़ फेंकने के लिए चाहते हैं देख सकते हैं।
अब मैं इस समारोह को दो बार चलाता हूं, दो बार। अब आउट आउट हैं।
R: 65 G: 65 B: 65 = ff414141
R: 242 G: 242 B: 242 = fff2f2f2
R: 205 G: 205 B: 205 = ffcdcdcd
R: 40 G: 40 B: 40 = ff282828
R: 249 G: 249 B: 249 = fff9f9f9
R: 249 G: 249 B: 249 = fff9f9f9
R: 94 G: 94 B: 94 = ff5e5e5e
R: 186 G: 186 B: 186 = ffbababa
R: 142 G: 142 B: 142 = ff8e8e8e
R: 190 G: 190 B: 190 = ffbebebe
R: 19 G: 19 B: 19 = ff131313
R: 119 G: 119 B: 119 = ff777777
R: 119 G: 119 B: 119 = ff777777
R: 75 G: 75 B: 75 = ff4b4b4b
R: 169 G: 169 B: 169 = ffa9a9a9
R: 127 G: 127 B: 127 = ff7f7f7f
R: 73 G: 73 B: 73 = ff494949
R: 27 G: 27 B: 27 = ff1b1b1b
R: 125 G: 125 B: 125 = ff7d7d7d
R: 212 G: 212 B: 212 = ffd4d4d4
R: 174 G: 174 B: 174 = ffaeaeae
R: 0 G: 0 B: 0 = ff000000
R: 0 G: 0 B: 0 = ff000000
R: 220 G: 220 B: 220 = ffdcdcdc
जैसा कि आप देख सकते हैं कि यह फिर से यादृच्छिक नहीं है, लेकिन यह क्यों होता है? और मैं इसका सामना कैसे कर सकता हूं?
मेरे पास एक सामान्य समस्या में यादृच्छिक रंग उत्पन्न करने वाला एक ही मुद्दा था। बीज प्रदान किए बिना एक त्वरित तरीका एक ही यादृच्छिक धारा का उपयोग करके एक साथ कुछ मूल्यों को अनुमति देना है। परिशुद्धता की कमी लेकिन थोड़ा और अधिक यादृच्छिक वितरण प्राप्त करने के लिए उपयोग किया जा सकता है। ईजी। int x = rng.Next()^rng.Next(); int परिमाण = x * x; फ्लोट वैल्यू = एक्स/(फ्लोट) परिमाण; –
इस विधि का उपयोग करके आप निम्न द्वारा थोड़ा बेहतर रंग वितरण उत्पन्न कर सकते हैं। रंग = रंग = नया रंग ( (बाइट) (rand.Next (0, 255)^rand.Next (0, 255)), (बाइट) (rand.Next (0, 255)^rand.Next (0, 255)), (बाइट) (rand.Next (0, 255)^rand.Next (0, 255)), (बाइट) (rand.Next (0, 255)^rand.Next (0 , 255))) –