#1
28.02.2018 um 08:04 Uhr
Ich habe noch ein Fehler in meinem Code entdeckt: Für Werte in der ersten Spalte werden falsche Zeilen- und Spaltennummer ermittelt.
Die Methode FindIndexInDiagonalSchema müsste so aussehen:

Quellcode ausblenden C#-Code
static void FindIndexInDiagonalSchema(ulong l, out ulong row, out ulong column)
        {
            double sqrt = -0.5 + Math.Sqrt(0.25 + 2 * l);
            double truncate = Math.Truncate(sqrt);
            double d = truncate;//Math.Truncate(sqrt);

            ulong step = (ulong)d + 1;
            ulong v = (step * step + step) / 2;//Gausssche Summenformel
            while (v <= l)
            {
                v += ++step;
            }

            if (truncate == sqrt)
            {
                row = step - 2;
                column = 0;
            }
            else
            {
                row = l - (v - step + 1);
                column = step - (row + 1);
            }
        }
post_arrow
522 0