Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Tunnetaan Farayn jonon n
- # Jonon kaikkien jäsenten nimittäjät < = n
- # Tunnetaan annettu jonon jäsen a / b supistetussa muodossa
- # jossa a < b , a < n, b <= n ja syt(a,b) = 1
- # Tehtävänä etsiä Fareyn jonon jäsenen a/b seuraajaja edeltäjä
- # Perustuu Matti K Sinisalon artikkeliin
- # http://www.geocities.ws/mattiksinisalo/farey2.pdf
- # Python ohjelma Farey_edeltaja_seuraaja.py
- # Juhani Kaukoranta 15.9.2019
- import gmpy2
- n = int(input("Anna Fareyn jonon nimittäjä n: "))
- a = int(input("Anna tunnetun jäsenen osoittaja a : "))
- b = int(input("Anna tunnetun jäsenen nimittäjä b : "))
- #n = 99999999999999999 # Sinisalon esimerkki
- #a = 45974587947981317 # Sinisalon esimerkki
- #b = 59848998549856713 # Sinisalon esimerkki
- r = gmpy2.invert(a,b)
- b_succ = n - (n+r) % b
- a_succ = (a*b_succ + 1) // b
- print("Fareyn jono n = ",n)
- print("Jäsenen ",a," / ",b)
- print("Seuraaja on ",a_succ," / ",b_succ)
- b_prev = n - (n-r) %b
- a_prev = (a*b_prev - 1) // b
- print("Edeltäjä on ",a_prev,"/",b_prev)
Advertisement
Add Comment
Please, Sign In to add comment