reviewed
approved
reviewed
approved
proposed
reviewed
editing
proposed
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).
~~ ".html" added to link.
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, 1, 2, 5, 9, 13, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17
Martin Aigner, <a href="https://archive.org/details/markovstheorem100000aign.html">Markov's theorem and 100 years of the uniqueness conjecture. A mathematical journey from irrational numbers to perfect matchings</a>, [archive.org copy of the book].
def generateAllMarkovTreeResidues(kn):
row = [[1 % k, n, 5 % k, n, 2 % kn]]
newRow.append([trpl[0], (3*trpl[0]*trpl[1]-trpl[2]) % k, n, trpl[1]])
newRow.append([trpl[1], (3*trpl[1]*trpl[2]-trpl[0]) % k, n, trpl[2]])
sum[r for n in range(1, 16) for r in generateAllMarkovTreeResidues(k) for k in range(1, 19)n)]
~~~ ".html" added to link.
proposed
editing
editing
proposed
Martin Aigner, <a href="https://archive.org/details/markovstheorem100000aign.html">Markov's theorem and 100 years of the uniqueness conjecture. A mathematical journey from irrational numbers to perfect matchings</a>, [archive.org copy of the book].
~~~ ".html" added to link.
allocated for William P. Orrick
Irregular triangle read by rows: row n is the list of residues mod n that occur among the Markov numbers
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, 1, 2, 5, 9, 13, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17
1,5
Length of row n is A370164(n).
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.
Martin Aigner, <a href="https://archive.org/details/markovstheorem100000aign">Markov's theorem and 100 years of the uniqueness conjecture. A mathematical journey from irrational numbers to perfect matchings</a>, [archive.org copy of the book].
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
(SageMath)
def generateAllMarkovTreeResidues(k):
row = [[1 % k, 5 % k, 2 % k]]
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]) % k, trpl[1]])
newRow.append([trpl[1], (3*trpl[1]*trpl[2]-trpl[0]) % k, trpl[2]])
row = newRow
residuesFound.sort()
return(residuesFound)
sum(generateAllMarkovTreeResidues(k) for k in range(1, 19))
allocated
nonn,tabf
Wouter Meeussen and William P. Orrick, Mar 03 2024
approved
editing
allocated for William P. Orrick
allocated
approved