jukaukor

Farey_edeltaja_seuraaja.py

Sep 15th, 2019
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. # Tunnetaan Farayn jonon n
  2. # Jonon kaikkien jäsenten nimittäjät < = n
  3. # Tunnetaan annettu jonon jäsen a / b supistetussa muodossa
  4. # jossa a < b , a < n, b <= n ja syt(a,b) = 1
  5. # Tehtävänä etsiä Fareyn jonon jäsenen a/b seuraajaja edeltäjä
  6. # Perustuu Matti K Sinisalon artikkeliin
  7. # http://www.geocities.ws/mattiksinisalo/farey2.pdf
  8. # Python ohjelma Farey_edeltaja_seuraaja.py
  9. # Juhani Kaukoranta 15.9.2019
  10.  
  11. import gmpy2
  12.  
  13. n = int(input("Anna Fareyn jonon nimittäjä n: "))
  14. a = int(input("Anna tunnetun jäsenen osoittaja a : "))
  15. b = int(input("Anna tunnetun jäsenen nimittäjä b : "))
  16. #n = 99999999999999999 # Sinisalon esimerkki
  17. #a = 45974587947981317 # Sinisalon esimerkki
  18. #b = 59848998549856713 # Sinisalon esimerkki
  19. r = gmpy2.invert(a,b)
  20. b_succ = n - (n+r) % b
  21. a_succ = (a*b_succ + 1) // b
  22. print("Fareyn jono n = ",n)
  23. print("Jäsenen ",a," / ",b)
  24. print("Seuraaja on ",a_succ," / ",b_succ)
  25. b_prev = n - (n-r) %b
  26. a_prev = (a*b_prev - 1) // b
  27. print("Edeltäjä on ",a_prev,"/",b_prev)
Advertisement
Add Comment
Please, Sign In to add comment