Riste, cini mi se da ni ova rekurzija nije totalno resenje zadatog zahteva(npr. ako u prvom nizu imamo clanove vrednosti 1,2,3 ,a u trazimo sumu za clan drugog niza vrednosti 4 Osnov ce dobiti vrednost 3 posle sabiranja prva dva clana i ispitace samo (Osnov+temp)>Cilj za treci clan, a nece naci kombinaciju 1+3=4 ,ispravi me ako gresim).
U prvoj poruci sam u NAPOMENI naglasio da imam vec neko resenje. Ono sto me zaista zanima je da li i kako ovaj zadatak moze da se resi pomocu rekurzija, jer sam ja prvo pokusao tako da ga resim i nikako nisam mogao da uspem.
Ako te ne mrzi pokusaj da mi das kompletno resenje, a ja cu ti sad poslati moje resenje zauzvrat za koje mislim da je veoma zanimljvo i primenjivo na mnoge jos komplikovanije zadatke. Ako ti nikad nije palo na pamet nesto ovako nadam se da ce ti pomoci u resavanju nekog komplikovanijeg problema.
Code:
...............
function test(broj,brojel,cilj:integer;prvi:array [1..1000] of integer);
var i,k,do,mo,suma:integer;
begin
test:=false;
for I:=3 to broj do
begin
k:=1;
suma:=0;
do:=i;
while k<=brojel do
begin
mo:=do mod 2;
do:=do div 2;
suma:=suma+prvi[k]*mo;
k:=k+1;
end;
if suma=cilj then begin
test:=true;
break;
end;
end;
end;
//.......... kraj funkcije
begin
//............ odredjivanje vrednosti promenjive broj
broj:=1;
for j:=1 to brojel do
broj:=broj*2;
broj:=broj-1;
// implementacija funkcije
for j:=1 to brojel2 do
if test(broj,brojel,drugi[j],prvi ) then treci[j]:=1
else treci[j]:=0;
Sve kombinacije se kupe tako sto se odgovarajuci brojevi niza mnoze odgovarajucim elementima binarnog zapisa (npr. ako je niz od pet clanova iako je binarni zapis 10110 to je zbir prvog,treceg i cetvrtog clana). Primetio si da je promenjiva broj tako odredjena da joj je binarni zapis sve jedinice.
Jedino sto ce ovakva funkcija ispisati i neke elemente drugog niza koji su pojavljuju samo jednom u prvom nizu(npr. za binarni zapis 10000), ali i to moze lako da se ostrani.
Slicne funkcije mogu da se primene u mnogim tezim zadacima(npr. azbuka reda cetiri za prolazak kroz matricu ).
Riste, molim te posali mi ovaj zadatak resen preko rekurzija, ako uspes da ga resis.
Uzgred, nisam sa ETF-a, nego sa FON-a. POZDRAV!
ZDRAVO DJACI!!!