Advertisement
jukaukor

BruteforceSuperHeron.jl

Jan 29th, 2020
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. # Tuottaa primitiivisia Super-Heronin kolmioita
  2. # yritys & erehdys- eli bruteforce-menetelmällä...;-)
  3. # (sivut peräkkäisiä kokonaislukuja)
  4. # lajiteltuna pinta-alan ja sivujen pituuden mukaan
  5. # Juhani Kaukoranta 29.01.2020
  6.  
  7. max = 25
  8. function BruteforceSuperHeron(max)
  9. SuperHeron = [0 0 0 0 0 0] # [a b c piiri ala inradius]
  10. for n in 3 : 100000
  11. a = n - 1
  12. b = n
  13. c = n + 1
  14. if isinteger((a+b+c)/2)
  15. s = div(a+b+c,2)
  16. d2 = s*(s-a)*(s-b)*(s-c)
  17. if d2 > 0 && isinteger(sqrt(d2))
  18. piiri = 2*s
  19. area = trunc(Int,sqrt(d2))
  20. inradius = div(area,s) # sisäänpiirretty säde
  21. kolmio = [a b c piiri area inradius]
  22. SuperHeron =vcat(SuperHeron,kolmio)
  23. end
  24. end
  25. end
  26. return SuperHeron
  27. end
  28. H = BruteforceSuperHeron(max)[setdiff(1:end,1),:] # Heron ekarivi [0 0 0 0 0 0] poistettuna
  29. #H=A[setdiff(1:end,1),:] # poistetaan ekarivi [0 0 0 0 0]
  30. println("[a b c piiri ala sisäsäde]")
  31. display(H[sortperm(H[:, 5]), :]) # lajitellaan pinta-alan mukaan
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement