jukaukor

Terras_modified_Collatz.py

Mar 17th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. # Collatzin konjektuuri
  2. # Terras-modified algoritm : not n = 3*n+1, but n = (3*n+1)//2.
  3. # Terras-modified algoritm shortens collatz number steps
  4. # Juhani Kaukoranta 17.3.2019
  5. # Jonon luvut tallennetaan numpy-taulukkoon
  6.  
  7. import numpy as np
  8.  
  9. def Collatz(n):
  10. x = np.array([n])
  11. while n > 1:
  12. if n % 2 == 0:
  13. n = n//2
  14. else:
  15. n = (3*n + 1) // 2
  16. # lisätään saatu luku n numpy-taulukkoon x
  17. x = np.append(x,n)
  18. # Collatz-jono on valmiina palautettavaksi
  19. return x
  20.  
  21. luku = int(input("Anna joku positiivinen kokonaisluku "))
  22. # numpy-array collatzjono sisältää Collatzin konjektuurin luvut
  23. terras_collatzjono = Collatz(luku)
  24. print("Terras-modified Collatz-jonossa alkioita ",terras_collatzjono.size,", jonon alkiot ovat:")
  25. print(terras_collatzjono)
Advertisement
Add Comment
Please, Sign In to add comment