Farey-serier (även Farey-bråk , Farey -sekvens eller Farey- tablå ) är en familj av ändliga delmängder av rationella tal .
Farey-sekvensen i th-ordningen är en stigande serie av alla positiva irreducerbara egenbråk vars nämnare är mindre än eller lika med :
Farey-sekvensen för en order kan konstrueras från ordersekvensen genom följande regel:
Farey-sekvenser för 1 till 8:
Om det finns två intilliggande bråk i Farey-serien, då . |
Observera att triangeln är i planet med hörn , och kan inte innehålla heltalspunkter annat än hörn. Annars, om hela punkten finns i , ligger bråkdelen mellan och , och nämnaren överstiger inte . Så enligt Peak-formeln är dess yta lika med . Å andra sidan är området . H. t. d.
Det omvända är också sant: om bråken är sådana att , då är de angränsande medlemmar av Farey-serien .
Algoritmen för att generera alla bråk F n är mycket enkel, både i stigande och fallande ordning. Varje iteration av algoritmen bygger nästa fraktion baserat på de två föregående. Således, om och är två redan konstruerade bråk, och är nästa okända, då . Detta betyder att för något heltal , och är sant , alltså och . Eftersom det ska vara så nära som möjligt ställer vi in nämnaren på maximalt möjligt, det vill säga härifrån, med hänsyn till det faktum att det är ett heltal, har vi och
Implementeringsexempel i Python :
def farey ( n , asc = Sant ): om asc : a , b , c , d = 0 , 1 , 1 , n annat : a , b , c , d = 1 , 1 , n - 1 , n skriv ut " % d / %d " % ( a , b ) medan ( asc och c <= n ) eller ( inte asc och a > 0 ): k = int (( n + b ) / d ) a , b , c , d = c , d , k * c - a , k * d - b skriv ut " %d / %d " % ( a , b )JavaScript- implementeringsexempel :
klass Bråk { konstruktor ( tal , valör ) { detta . numer = numer ; detta . denom = denom ; } copy () { returnera ny bråkdel ( detta . tal , detta . valör ); } } funktion * farey ( n , asc = sant ) { låt [ a , b ] = asc ? [ ny bråkdel ( 0 , 1 ), ny bråkdel ( 1 , n ) ] : [ ny bråkdel ( 1 , 1 ), ny bråkdel ( n - 1 , n ) ]; ge en . kopia (); while ( asc && b . numer <= n || ! asc && a . numer > 0 ) { yield b . kopia (); const k = Math . våning (( n + a . denom ) / b . denom ), nästa = ny Bråk ( k * b . numer - a . numer , k * b . denom - a . denom ); a = b _ b = nästa ; } }Det är alltså möjligt att konstruera en godtyckligt stor mängd av alla bråk i förkortad form, som till exempel kan användas för att lösa den diofantiska ekvationen genom uttömmande sökning i rationella tal.
John Farey är en berömd geolog, en av pionjärerna inom geofysiken . Hans enda bidrag till matematiken var bråken uppkallad efter honom. År 1816 publicerades Fareys artikel "Om en nyfiken egenskap hos vulgära fraktioner", där han definierade sekvensen . Detta papper nådde Cauchy , som samma år publicerade ett bevis på Fareys gissning att varje ny term i ordningen Farey-sekvensen är medianen för dess grannar. Sekvensen som beskrevs av Farey 1816 användes av Charles Haros i hans papper från 1802 om approximation av decimaler med vanliga bråk.