Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using StatsBase
- # valitaan joukosta a uniikkeja n luvun osajoukkoja
- # idea alunperin Ilpo Kantonen
- # Juhani Kaukoranta 3.6.2023
- # tai esim a = rand(1:99,50) tuottaa 50 kpl kokonaislukuja väliltä 1...99
- # etsi n kpl m luvun ryhmiä joiden lukujen summa < raja
- function hakualirajan(a,n,m,raja)
- # a = lukujoukko josta valitaan osajoukko
- # n = arvontojen lukumäärää
- # m = osajoukon koko
- # raja = osajoukon summa
- osajoukot = []
- b = sort(sample(a,m,replace=false))
- while sum(b) >= raja
- b = sort(sample(a,m,replace=false))
- end # löydetään eka osajoukko, jonka sum < raja
- push!(osajoukot,b) # tallennetaan
- j = 1 # laskee löydettyjen uniikkien kuusikkojen määrää
- for i = 2:n
- b = sort(sample(a,m,replace=false))
- while sum(b) >= raja
- b = sort(sample(a,m,replace=false))
- end
- # löydetty osajoukko, katsotaan onko aiemman duplikaatti
- duplicat = false # ei duplikaattia
- for k = 1 : j
- if b == osajoukot[k]
- duplicat = true # duplikaatti
- end
- end
- if duplicat == false
- push!(osajoukot,b) # lisättiin listaan
- j += 1 # kirjaa löydettyjen kuusikoiden lukumäärää
- end
- end
- println("löydettyjä osajokkoja ",j)
- return sort(osajoukot)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement