Farey-sarja (myös Farey-murtoluku , Farey- sekvenssi tai Farey- taulukko ) on rationaalisten lukujen äärellisten osajoukkojen perhe .
Kolmannen kertaluvun Farey-sekvenssi on nouseva sarja kaikista positiivisista pelkistymättömistä varsinaisista murtoluvuista , joiden nimittäjä on pienempi tai yhtä suuri kuin :
Tilauksen Farey-sekvenssi voidaan muodostaa tilaussekvenssistä seuraavalla säännöllä:
Farey-jaksot 1-8:
Jos Farey-sarjassa on kaksi vierekkäistä murtolukua, niin . |
Huomaa, että kolmio on tasossa, jossa on kärkipisteet , eikä se voi sisältää muita kokonaislukupisteitä kuin kärkipisteitä. Muuten, jos koko piste sisältyy , murto-osa on välillä ja , ja nimittäjä ei ylitä . Joten huippukaavan mukaan sen pinta-ala on yhtä suuri kuin . Toisaalta alue on . H.t.d.
Päinvastoin on myös totta: jos murtoluvut ovat sellaisia, että , niin ne ovat Farey-sarjan naapurijäseniä .
Algoritmi kaikkien murtolukujen F n generoimiseksi on hyvin yksinkertainen sekä nousevassa että laskevassa järjestyksessä. Jokainen algoritmin iteraatio rakentaa seuraavan murto-osan kahden edellisen perusteella. Siten, jos ja ovat kaksi jo rakennettua murtolukua, ja on seuraava tuntematon, niin . Tämä tarkoittaa, että joillekin kokonaisluvuille ja on totta , joten ja . Koska sen pitäisi olla mahdollisimman lähellä arvoa , niin asetamme nimittäjäksi suurimman mahdollisen, eli tästä eteenpäin ottaen huomioon sen, että on kokonaisluku, meillä on ja
Toteutusesimerkki Pythonissa :
def farey ( n , asc = True ): jos asc : a , b , c , d = 0 , 1 , 1 , n muuten : a , b , c , d = 1 , 1 , n - 1 , n tulosta " % d / %d " % ( a , b ) kun taas ( nouseva ja c <= n ) tai ( ei nouseva ja a > 0 ): k = int ( ( n + b ) / d ) a , b , c , d = c , d , k * c - a , k * d - b tulosta " %d / %d " % ( a , b )Esimerkki JavaScriptin toteutuksesta :
class Murtoluku { konstruktori ( numero , denom ) { this . numero = numero ; tämä . denom = denom ; } kopioi () { return new Murtoluku ( this . numer , this . denom ); } } function * farey ( n , asc = tosi ) { olkoon [ a , b ] = asc ? [ uusi murtoluku ( 0 , 1 ), uusi murtoluku ( 1 , n ) ] : [ uusi murtoluku ( 1 , 1 ), uusi murtoluku ( n - 1 , n ) ]; tuotto a . kopioi (); while ( nouseva && b . numero <= n || ! nouseva && a . numero > 0 ) { tuotto b . kopioi (); const k = Math . kerros (( n + a . denom ) / b . denom ), seuraava = uusi Murtoluku ( k * b . numer - a . numer , k * b . denom - a . denom ); a = b _ b = seuraava ; } }Siten on mahdollista rakentaa mielivaltaisen suuri joukko kaikista murtoluvuista lyhennetyssä muodossa, jota voidaan käyttää esimerkiksi Diofantiiniyhtälön ratkaisemiseen rationaalilukujen tyhjentävällä haulla .
John Farey on kuuluisa geologi, yksi geofysiikan pioneereista . Hänen ainoa panoksensa matematiikkaan olivat hänen mukaansa nimetyt murtoluvut. Vuonna 1816 julkaistiin Fareyn artikkeli "Mauttomat fraktioiden kummallisesta ominaisuudesta", jossa hän määritteli sekvenssin . Tämä artikkeli saavutti Cauchyn , joka samana vuonna julkaisi todisteen Fareyn olettamuksesta, jonka mukaan jokainen uusi termi Farey-järjestyksessä on naapuriensa mediaani . Fareyn vuonna 1816 kuvaamaa sekvenssiä käytti Charles Haros vuoden 1802 artikkelissaan desimaalien lähentämisestä yhteisten murtolukujen avulla.