cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A370852 Irregular triangle read by rows: row n is the list of residues mod n that occur among the Markov numbers.

Original entry on oeis.org

0, 0, 1, 1, 2, 1, 2, 0, 1, 2, 3, 4, 1, 2, 4, 5, 1, 2, 5, 6, 1, 2, 5, 1, 2, 4, 5, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 4, 5, 6, 7, 9, 10, 1, 2, 5, 10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 5, 6, 8, 9, 12, 13, 1, 2, 4, 5, 7, 8, 10, 11, 13, 14
Offset: 1

Views

Author

Keywords

Comments

Length of row n is A370164(n).

Examples

			The first rows are:
n
1:   0
2:   0  1
3:   1  2
4:   1  2
5:   0  1  2  3  4
6:   1  2  4  5
7:   1  2  5  6
8:   1  2  5
9:   1  2  4  5  7  8
10:  0  1  2  3  4  5  6  7  8  9
11:  1  2  4  5  6  7  9 10
12:  1  2  5 10
13:  0  1  2  3  4  5  6  7  8  9 10 11 12
14:  1  2  5  6  8  9 12 13
15:  1  2  4  5  7  8 10 11 13 14
16:  1  2  5  9 13
17:  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16
18:  1  2  4  5  7  8 10 11 13 14 16 17
19:  1  2  3  4  5  6  8  9 10 11 13 14 15 16 17 18
20:  1  2  5  6  9 10 13 14 17 18
For n = 14 residues congruent to 0, 3, or 4 mod 7 are forbidden. (See comments to A370164 for explanation.) All other residues occur. For example, the Markov numbers 1, 2, 5, 34, 610, 1325, 194, and 13 produce the residues shown in row 14 of the triangle (mod 14).
		

References

  • Martin Aigner, Markov's theorem and 100 years of the uniqueness conjecture. A mathematical journey from irrational numbers to perfect matchings. Springer, 2013. x+257 pp. ISBN: 978-3-319-00887-5; 978-3-319-00888-2 MR3098784.

Crossrefs

Markov numbers: A002559.
Markov tree: A327345, A368546.
Cf. A370164.

Programs

  • SageMath
    def generateAllMarkovTreeResidues(n):
        row = [[1 % n,5 % n,2 % n]]
        residuesFound = []
        triplesFound = []
        while row != []:
            newRow = []
            for trpl in row:
                if trpl[1] not in residuesFound:
                    residuesFound.append(trpl[1])
                if trpl[2] < trpl[0]:
                    trpl.reverse()
                if trpl not in triplesFound:
                    triplesFound.append(trpl)
                    newRow.append([trpl[0],(3*trpl[0]*trpl[1]-trpl[2]) % n,trpl[1]])
                    newRow.append([trpl[1],(3*trpl[1]*trpl[2]-trpl[0]) % n,trpl[2]])
            row = newRow
        residuesFound.sort()
        return(residuesFound)
    [r for n in range(1,16) for r in generateAllMarkovTreeResidues(n)]