Advertisement
jukaukor

osajoukot2.jl

Jun 3rd, 2023
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. using StatsBase
  2. # valitaan joukosta a uniikkeja n luvun osajoukkoja
  3. # idea alunperin Ilpo Kantonen
  4. # Juhani Kaukoranta 3.6.2023
  5. # tai esim a = rand(1:99,50) tuottaa 50 kpl kokonaislukuja väliltä 1...99
  6. # etsi n kpl m luvun ryhmiä joiden lukujen summa < raja
  7. function hakualirajan(a,n,m,raja)
  8. # a = lukujoukko josta valitaan osajoukko
  9. # n = arvontojen lukumäärää
  10. # m = osajoukon koko
  11. # raja = osajoukon summa
  12. osajoukot = []
  13. b = sort(sample(a,m,replace=false))
  14. while sum(b) >= raja
  15. b = sort(sample(a,m,replace=false))
  16. end # löydetään eka osajoukko, jonka sum < raja
  17. push!(osajoukot,b) # tallennetaan
  18. j = 1 # laskee löydettyjen uniikkien kuusikkojen määrää
  19. for i = 2:n
  20. b = sort(sample(a,m,replace=false))
  21. while sum(b) >= raja
  22. b = sort(sample(a,m,replace=false))
  23. end
  24. # löydetty osajoukko, katsotaan onko aiemman duplikaatti
  25. duplicat = false # ei duplikaattia
  26. for k = 1 : j
  27. if b == osajoukot[k]
  28. duplicat = true # duplikaatti
  29. end
  30. end
  31. if duplicat == false
  32. push!(osajoukot,b) # lisättiin listaan
  33. j += 1 # kirjaa löydettyjen kuusikoiden lukumäärää
  34. end
  35. end
  36. println("löydettyjä osajokkoja ",j)
  37. return sort(osajoukot)
  38. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement