यह सुनिश्चित नहीं है कि इसे और कैसे समझाया जाए, इसलिए शीर्षक काफी समस्या का वर्णन करता है।सिस्टम क्यों है। यादृच्छिक पंक्ति में कई बार '1' दे रहा है, फिर थोड़ी देर के लिए नहीं, फिर फिर से?
रैंडम को लूप के प्रत्येक भाग को फिर से शुरू नहीं किया जा रहा है। यह एक वर्ग का एक स्थिर सदस्य है जिसे मैं हमेशा अन्य वर्गों से बुलाता हूं।
मैं कस्टम बीज का उपयोग नहीं कर रहा हूं।
initialisation कोड है:
public static Random random = new Random();
for (int x = 0; x < 75; x++)
{
if (main.random.Next(11) == 1)
{
tiles[heightMap[x] - 1][x] = 4;
tiles[heightMap[x] - 2][x] = 4;
tiles[heightMap[x] - 3][x] = 4;
tiles[heightMap[x] - 4][x] = 4;
tiles[heightMap[x] - 5][x] = 4;
tiles[heightMap[x] - 5][x - 1] = 5;
tiles[heightMap[x] - 6][x - 1] = 5;
tiles[heightMap[x] - 6][x] = 5;
tiles[heightMap[x] - 5][x + 1] = 5;
tiles[heightMap[x] - 6][x + 1] = 5;
}
}
यह (मुझे पता है यह एक शानदार तरीका नहीं है हूँ - यह अल्पविकसित और अस्थायी है) एक पेड़ उत्पन्न करता है।
हालांकि मेरी इलाके अक्सर कुछ इस तरह, कई संकुल के पेड़ के साथ दिखता है:
☁☁☁☁☁☁☁☁☁☁
किसी को भी इस क्यों हो रहा है उसकी जानकारी दे सकते हैं? क्या System.Security.Cryptography.Random क्लास का उपयोग करने से बेहतर विकल्प है?
मैं प्रति पेड़ के औसत 9 अंतर की अपेक्षा करता हूं, लेकिन यह 7 की तरह अधिक है और फिर 3 पेड़ बारीकी से क्लस्टर किए गए हैं।
http://dilbert.com/strips/comic/2001-10 -25/ –
अच्छा कॉमिक, बहुत सच है। :( –
रैंडम का मतलब वैकल्पिक परिणामों में लगातार परिवर्तन नहीं होता है। समय के साथ, इस तरह का अनुक्रम समान रूप से वितरित होता है। – codekaizen