jukaukor

HeronianTriangles_BigInt.jl

Jan 30th, 2020
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. # Almost equilateral Heronian triangles
  2. # (Super Heronian triangles)
  3. # (Lähes tasasivuiset kolmiot)
  4. # sides n-1, n, n+1
  5. # Juhani Kaukoranta 30.01.2020
  6. # Käyttää Julian BigInteger-tyyppiä
  7. # joka mahdollistaa suuret kokonaisluvut
  8.  
  9. max = 18
  10. function SuperHeronian(max)
  11. b1 = BigInt(4)
  12. b2 = BigInt(14)
  13. a1 = BigInt(3)
  14. c1 = BigInt(5)
  15. a2 = BigInt(13)
  16. c2 = BigInt(15)
  17. # ekakolmio
  18. piiri = a1 + b1 + c1
  19. s = div(piiri,2)
  20. area = trunc(BigInt,sqrt(s*(s-a1)*(s-b1)*(s-c1)))
  21. inradius = div(area,s)
  22. HeronAlmEq = [a1 b1 c1 piiri area inradius]
  23. # tokakolmio
  24. piiri = a2 + b2 + c2
  25. s = div(piiri,2)
  26. area = trunc(BigInt,sqrt(s*(s-a2)*(s-b2)*(s-c2)))
  27. inradius = div(area,s)
  28. kolmio = [a2 b2 c2 piiri area inradius]
  29. HeronAlmEq = vcat(HeronAlmEq,kolmio)
  30. for i in 1 : max
  31. b3 = 4*b2 - b1
  32. a3 = b3 - 1
  33. c3 = b3 + 1
  34. piiri = a3 + b3 +c3
  35. s = div(piiri,2)
  36. area = trunc(BigInt,sqrt(s*(s-a3)*(s-b3)*(s-c3)))
  37. inradius = div(area,s)
  38. kolmio = [a3 b3 c3 piiri area inradius] # present new
  39. HeronAlmEq = vcat(HeronAlmEq,kolmio)
  40. b1 = b2
  41. temp = b3
  42. b2 = temp
  43. end
  44. return HeronAlmEq
  45. end
  46. println("Lähes tasasivuiset Heronin kolmiot")
  47. println(" [a b c piiri area inradius]")
  48. H = SuperHeronian(max)
  49. display(H)
Advertisement
Add Comment
Please, Sign In to add comment