No estoy seguro de qué otra manera de explicar esto, por lo que el título describe bastante bien el problema.¿Por qué System.Random da '1' muchas veces seguidas, luego no por un tiempo, luego otra vez?
Al azar no se reinicializa cada parte del ciclo. Es un miembro estático de una clase a la que siempre llamo desde otras clases.
No estoy utilizando una semilla personalizada.
El código de inicialización es:
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;
}
}
Este (Soy consciente de que esto no es una gran manera - es rudimentario y temporal) genera un árbol.
Sin embargo, mi terreno a menudo se ve algo como esto, con muchos árboles agrupados:
☁☁☁☁☁☁☁☁☁☁
¿Alguien puede dar una idea de por qué ocurre esto? ¿Hay una mejor alternativa que usar la clase System.Security.Cryptography.Random?
Esperaría un promedio de 9 huecos por árbol, pero es más como 7 y luego 3 árboles muy agrupados.
http://dilbert.com/strips/comic/2001-10 -25/ –
Bonito comic, muy cierto. :( –
Aleatorio no significa cambios frecuentes en los resultados alternativos. Con el tiempo, la secuencia de este tipo se distribuye de manera uniforme. – codekaizen