Saturday, December 3, 2016

Python: Farey Sequence: The Farey sequences of orders 8

Command:

$ cat farey.py


Result:

def farey( n, asc=True ):
    if asc:
        a, b, c, d = 0, 1, 1 , n
    else:
        a, b, c, d = 1, 1, n-1, n
    print "%d/%d" % (a,b)
    while (asc and c <= n) or (not asc and a > 0):
        k = int((n + b)/d)
        a, b, c, d = c, d, k*c - a, k*d - b
        print "%d/%d" % (a,b)
farey(8)


Command:

$ python farey.py


Result:

0/1
1/8
1/7
1/6
1/5
1/4
2/7
1/3
3/8
2/5
3/7
1/2
4/7
3/5
5/8
2/3
5/7
3/4
4/5
5/6
6/7
7/8
1/1