martes, 1 de mayo de 2018
Hace unos días, el amigo Fernando J., me escribía a través del formulario de contacto del blog preguntándome si tenía a mano alguna solución para "desordenar" aleatoriamente elementos de un array en VB y, aunque no es el lenguaje ni el tipo de cuestión que solemos tocar por aquí, sí me pareció interesante darle una respuesta que pudiera ser de utilidad a alguien más.
Hay varios algoritmos para conseguirlo, pero el llamado Fisher-Yates shuffle es muy eficiente (O(N)), no necesita almacenamiento extra, es fácil de implementar y ofrece unos resultados más que razonables. Este algoritmo permite generar una permutación aleatoria de un conjunto finito de elementos o, en otras palabras, desordenar los elementos de un array.
Hay varios algoritmos para conseguirlo, pero el llamado Fisher-Yates shuffle es muy eficiente (O(N)), no necesita almacenamiento extra, es fácil de implementar y ofrece unos resultados más que razonables. Este algoritmo permite generar una permutación aleatoria de un conjunto finito de elementos o, en otras palabras, desordenar los elementos de un array.
Publicado por José M. Aguilar a las 1:45 p. m.
Hay sólo 1 comentario, ¡participa tú también!
Etiquetas: c#, nivel básico, trucos
lunes, 30 de abril de 2018
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET / .NET Core
- C# Debug vs. Release Builds and Debugging in Visual Studio – from Novice to Expert in One Blog Article
Ben Hall - First steps with nullable reference types
Jon Skeet - Adding Resilience and Transient Fault handling to your .NET Core HttpClient with Polly
Scott Hanselman - Don’t Use Enumerables as Numbers
Peter Vogel - LINQ Part 4: A Deep Dive Into a Queryable Extension Method
Eric Lynch - Saber qué versiones de .NET Core y de SDK .NET Core tenemos instaladas
Jorge Serrano - Inferred tuple names in C# 7.1
gunnar Peipman - Setting up .NET Core Configuration Providers
Randy Patterson
martes, 24 de abril de 2018
Hace unos días hablábamos de las, a veces desconocidas, redirecciones HTTP 303, 307 y 308, y comentábamos el por qué de su existencia y los escenarios en los que debían ser utilizadas si queremos seguir de forma más estricta el protocolo HTTP a la hora de implementar APIs o aplicaciones.
Pues bien, al hilo de esto, en este post veremos muy rápidamente cómo podemos implementar estas redirecciones en ASP.NET Core MVC que, como veréis, nos lo pone bastante fácil.
Pues bien, al hilo de esto, en este post veremos muy rápidamente cómo podemos implementar estas redirecciones en ASP.NET Core MVC que, como veréis, nos lo pone bastante fácil.
lunes, 23 de abril de 2018
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET / .NET Core
- Help us plan the future of .NET!
Aditi Dugar - Performance Improvements in .NET Core 2.1
Stephen Toub - 7 things you didn’t know about .NET code
Liviu Costea - Sharing is Caring: Using Memory Mapped Files in .NET
Tom Fisher - C# Array: Definition, Examples, Best Practices, and Pitfalls
Justin Boyer
martes, 17 de abril de 2018
Va un truquillo muy rápido que, aparte de al que os habla, quizás a alguno más os provoque un momento “ahh, pues claro, cómo no se me había ocurrido antes” ;)
Y es que el problema con las costumbres es que son difíciles de quitar; por ejemplo, probablemente muchos estamos acostumbrados a obtener el nombre de los miembros de un enum de la siguiente forma:
Y es que el problema con las costumbres es que son difíciles de quitar; por ejemplo, probablemente muchos estamos acostumbrados a obtener el nombre de los miembros de un enum de la siguiente forma:
public enum Color { Red, Green, Blue }
static void Main(string[] args)
{
Console.WriteLine(Color.Red.ToString());
// Output: Red
}
A priori es correcto: llevamos años haciéndolo así y no nos ha ido mal del todo. Bueno, o sí, pero probablemente no por este motivo ;)