1. Problema
Generar un triángulo de Pascal.
2. Solución
Para la solución de este problema no se usará recursión; a razón de que puede resultar lento y podría ocasionar un desbordamiento de memoria.
Se recurre al uso de la técnica de memorización: almacenamiento externo para guardar cálculos, y que éstos sirvan para las siguientes iteraciones (Mukherjee, 2014).
3. Código C#
Aunque el código anterior incluye comentarios, valdría la pena hacer notas acerca de cómo se generan los nuevos valores:
- Línea 32-33: El método de extensión First busca la primera coincidencia que cumpla la condición:
v => v.Item1 == (filaActual - 1) && v.Item2 == (j - 1)Esto quiere decir que va a buscar el Item1 que cumpla la condición (filaActual - 1): fila anterior; y además, el Item2 que cumpla condición (filaActual - 1): columna anterior.De forma análoga para el ítem que suma el siguiente valor de la fila anterior y de la columna actual:
v => v.Item1 == (filaActual - 1) && v.Item2 == jNótese que la expresión v.Item2 == j hace referencia al valor (Item3) que está enseguida de la columna anteriormente encontrada.
4. Literatura & Enlaces
Mukherjee, S (2014). Thinking in LINQ Harnessing the Power of Functional Programming in .NET Applications. United States: Apress.
O
No hay comentarios:
Publicar un comentario
Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.